Polnyj man spravochnik po komandam
4
APK 00210-01 33 01-4
1. KOMANDY OBSHCHEGO NAZNACHENIYA
Struktura opisaniya kazhdoj komandy imeet sleduyushchij format:
imya: privodyatsya imena komand i kratkaya informaciya
o ih naznachenii;
format: privoditsya format komandy. Parametry, vzyatye
v kvadratnye skobki, mogut byt' opushcheny;
mnogotochie posle parametra ukazyvaet na to,
chto dannyj parametr mozhet byt' mnogokratno
povtoren.
opisanie: soderzhit podrobnoe opisanie komandy;
fajly: perechislyayutsya imena fajlov, kotorye ispol'-
zuyutsya dannoj komandoj;
diagnostika: perechislyayutsya diagnosticheskie soobshcheniya, ko-
torye mogut vydavat'sya v processe vypolneniya
dannoj komandy;
zamechaniya: privodyatsya ogranicheniya na oblast' primeneniya
komand;
dopolnitel'nye ssylki:
delayutsya ssylki na sopryazhennye komandy. Dlya udobstva
raboty v skobkah privoditsya nomer chasti rukovodstva
programmista gde opisany sopryazhennye komandy
Opisanie komand obshchego naznacheniya privedeno v prilozhe-
nii.
5
APK 00210-01 33 01-4
PRILOZHENIE
6
APK 00210-01 33 01-4
IMYA:
apropos - poisk komponentov v spravochnike po sisteme.
FORMAT:
apropos klyuch ...
OPISANIE:
Komanda apropos prosmatrivaet kratkij spravochnik po
sisteme i vydaet vse zapisi, soderzhashie vhozhdeniya ele-
menta, ukazannogo v spiske ("klyuch"). Poskol'ku kazhdaya
zapis' kratkogo kataloga soderzhit nomer razdela i naz-
vanie dokumenta, etu komandu udobno ispol'zovat' dlya
polucheniya informacii o komponentah, kotorye ne imeyut
otdel'nogo dokumenta, no upominayutsya pri opisanii
kakogo-libo drugogo komponenta.
PRIMERY
Pri ispol'zovanii komandy:
apropos time
mozhet byt' poluchena sleduyushchaya posledavatel'nost'
strok:
alarm - vypolnit' komandy v ukazannoe vremya;
time - komanda vydachi vremeni raboty komandy.
7
APK 00210-01 33 01-4
IMYA:
ar - programma obsluzhivaniya arhivov i bibliotek.
FORMAT:
ar klyuch [pozimya] arhiv imya ...
OPISANIE:
Komanda ar obsluzhivaet gruppy fajlov, ob'edinennyh v
edinyj arhivnyj fajl. Osnovnym primeneniem etoj prog-
rammy yavlyaetsya sozdanie i modifikaciya bibliotechnyh
fajlov, ispol'zuemyh redaktorom svyazij ld. Tem ne me-
nee, ona mozhet byt' ispol'zovana v lyubyh podobnyh
celyah.
"Klyuch" predstavlyaet soboj odin iz simvolov drqtpmx,
kotoryj mozhet ob'edinyat'sya s odnim ili neskol'kimi iz
simvolov vuaibcl (poslednie mogut byt' opushcheny). Argu-
ment "arhiv" zadaet imya arhivnogo fajla. Argument
"imya" predstavlyaet soboj imya fajla, kotoryj neobhodimo
zanesti v arhiv ili imya fajla, uzhe vhodyashchego v sostav
arhiva. Klyuchi zadayut sleduyushchie rezhimy raboty:
d - Udalenie fajlov s ukazannymi imenami iz arhiva;
r - Zapis' perechislennyh fajlov v arhiv. Esli fajl
uzhe vhodit v arhiv, to on zamenyaetsya na novyj.
Esli vmeste s klyuchom "r" ispol'zuetsya neobyaza-
tel'nyj klyuch "u", to v arhive zamenyayutsya tol'ko
te fajly, kotorye imeyut bolee pozdnie daty modi-
fikacii, chem odnoimennye fajly, vhodyashchie v ar-
8
APK 00210-01 33 01-4
hiv. Esli ispol'zuetsya odin iz klyuchej pozicioni-
rovaniya "abi" i prisutstvuet parametr "pozimya",
novye fajly pomeshchayutsya posle (a) ili pered (b
ili i) fajlom "pozimya". V protivnom sluchae novye
fajly pomeshchayutsya v konec;
q - Bystroe dobavlenie perechislennyh fajlov v konec
arhiva. Klyuchi pozicionirovaniya ne dopuskayutsya. V
etom rezhime ne proveryaetsya, nahodyatsya li uzhe v
arhive fajly s zadannymi imenami. |tot rezhim po-
lezen tol'ko pri sozdanii bol'shih arhivov po
chastyam dlya ustraneniya lishnih dejstvij;
t - Poluchenie imen fajlov, vhodyashchih v arhiv. Esli
imena fajlov ne zadany, vydaetsya spisok imen
vseh fajlov arhiva, v protivnom sluchae vyvoditsya
spisok imen tol'ko zadannyh fajlov. Esli fajl s
zadannym imenem otsutstvuet v arhive, vydaetsya
sootvetstvuyushchaya diagnostika;
p - Vydacha v standartnyj fajl vyvoda perechislennyh
fajlov iz arhiva. Soderzhimoe arhiva ne izmenyaet-
sya;
m - Peremeshchenie perechislennyh fajlov. Esli pri-
sutstvuet klyuch pozicionirovaniya i parametr "po-
zimya", fajly peremeshchayutsya v ukazannoe mesto, kak
i v rezhime "r", inache fajly peremeshchayutsya v konec
arhiva;
9
APK 00210-01 33 01-4
x - Perechislennye fajly vydelyayutsya iz arhiva v ot-
del'nye fajly. Esli ne zadany imena fajlov, ras-
pakovyvaetsya ves' arhiv. Ni v koem sluchae koman-
da h ne izmenyaet arhivnyj fajl;
v - Esli ukazan dannyj klyuch, komanda ar vydaet pod-
robnyj protokol svoih dejstvij. Pri ispol'zova-
nii sovmestno s klyuchem "t", vydaetsya bolee
podprobnaya informaciya o fajlah, vhodyashchih v ar-
hiv. Kogda dannyj klyuch ispol'zuetsya sovmestno s
klyuchem "p", pered kazhdym fajlom ukazyvaetsya ego
imya;
c - Sozdaet novyj arhiv, dazhe esli arhivnyj fajl
"arhiv" uzhe sushchestvuet;
l - Obychno komanda ar pomeshchaet svoi vremennye fajly
v kataloge /tmp. Zadanie dannogo klyucha privodit
k tomu, chto oni razmeshchayutsya v tekushchem kataloge.
FAJLY:
/tmp/v* vremennye fajly
DOPOLNITELXNYE SSYLKI :
ld, ar, lorder, ranlib
ZAMECHANIYA:
Esli v spiske parametrov odin i tot zhe fajl ukazan
dvazhdy, on mozhet byt' dvazhdy pomeshchen v arhiv.
10
APK 00210-01 33 01-4
IMYA:
as, newas - assembler
FORMAT:
as [-] [-o obfajl] [imya...]
OPISANIE:
Komanda as assembliruet fajly s ukazannymi imenami ili
standartnyj fajl vvoda, esli imena fajlov ne zadany.
Esli zadan klyuch "-", vse neopredelennye pri assembli-
rovanii simvoly schitayutsya vneshnimi.
Rezul'tat raboty komandy as pomeshchaetsya v fajl "obfajl"
ili, esli ne zadan klyuch "-o", ispol'zuetsya fajl a.out
v tekushchem spravochnike.
Komanda newas vyzyvaet novyj variant assemblera, v ko-
torom uluchsheny diagnostiki, vvedena vozmozhnost' is-
pol'zovat' russkie bukvy v identifikatorah, no imeyutsya
nekotorye ogranicheniya na poryadok opisaniya identifika-
torov (vse peremennye v pravoj chasti operatorov "="
dolzhny byt' opredeleny).
FAJLY:
/tmp/as2 vtoroj prohod assemblera
/tmp/atm[1-3]? vremennye fajly
a.out ob'ektnyj fajl
DOPOLNITELXNYE SSYLKI :
ld, nm, adb, a.out.
11
APK 00210-01 33 01-4
Imeetsya otdel'noe opisanie assemblera.
DIAGNOSTIKA:
Esli vhodnoj fajl ne dostupen dlya chteniya - vydaetsya
znak voprosa "?", za kotorym sleduet imya fajla. Esli
assembliruemaya programma soderzhit oshibki, to vydaetsya
odin simvol diagnostiki, imya fajla i nomer stroki, v
kotoroj byla obnaruzhena oshibka. Vozmozhno sleduyushchie
simvoly diagnostiki:
) Narushen balans skobok;
] Narushen balans skobok;
< Nezavershennaya stroka;
* Nekorrektnaya kosvennaya ssylka;
. Nekorrektnoe izmenenie tekushchego adresa;
a Oshibka v adrese;
b Perehod na nechetnyj libo slishkom bol'shoj adres;
e Oshibka v vyrazhenii;
f Nevernyj lokal'nyj simvol (tipa 'f' ili 'b');
g Neizvestnyj simvol;
i Konec fajla v kostrukcii "if";
m Simvol mnogokratno opredelen kak metka;
o Nechetnyj adres;
12
APK 00210-01 33 01-4
p "." razlichaetsya v 1-om i 2-om prohode;
r Oshibka razmesheniya;
u Neopredelennyj simvol;
x Sintaksicheskaya oshibka.
ZAMECHANIYA:
Pri diagnostike sintaksicheskih oshibok nomer stroki,
gde proizoshla oshibka, mozhet ukazyvat'sya neverno.
13
APK 00210-01 33 01-4
IMYA:
at - vypolnit' komandy v ukazannoe vremya.
FORMAT:
at vremya [den'] [fajl]
OPISANIE:
Komanda at sohranyaet kopiyu fajla "fajl" (po umolchaniyu
- standartnyj fajl vvoda) dlya zapuska v ukazannoe vre-
mya. Predpolagaetsya, chto "fajl" soderzhit programmu na
yazyke SHELL (ili CSHELL). V nachalo fajla vstavlyaetsya
komanda perehoda v spravochnik (cd), kotoryj byl teku-
shchim v moment vypolneniya komandy at. Za etim sleduet
opredelenie vseh makroperemennyh "sredy". Pri zapuske
podobnogo komandnogo fajla ispol'zuyutsya identifikatory
gruppy (GID) i pol'zovatelya (UID) sozdatelya.
Argument "vremya" predstavlyaet soboj ot 1 do 4 cifr, za
kotorymi mogut sledovat' simvoly "a", "p", "n" ili
"m", oznachayushchie "do poludnya", "posle poludnya", "dnem"
i "noch'yu" sootvetstvenno. Odna ili dve cifry rassmat-
rivayutsya kak chasy. Tri ili chetyre cifry rassmatrivayut-
sya kak chasy i minuty. Esli bukvy posle cifr otsutstvu-
yut, podrazumevaetsya 24-chasovoe sutochnoe vremya.
Neobyazatel'nyj parametr "den'" ispol'zuetsya dlya zada-
niya libo nazvaniya mesyaca, za kotorym sleduet chislo,
libo - dnya nedeli. Esli prisutsvuet slovo "week",
vyzov otkladyvaetsya na sem' dnej. Nazvaniya mesyacev i
dnej mogut usekat'sya do raspoznavaemoj velichiny. Pri-
14
APK 00210-01 33 01-4
vedem primery dopustimyh komand:
at 8am jan 24
at 1530 fr week
Programmy at vypolnyayutsya posredstvom periodicheskogo
zapuska komandy /usr/lib/atrun iz cron. Diskretnost'
at zavisit ot togo, kak chasto vypolnyaetsya atrun.
FAJLY:
/usr/spool/at/gg.ddd.chchchch.nn
Rabota dolzhna byt' vypolnena v "chchchch" chasu "ddd"
dnya "gg" goda; "nn" predstavlyaet soboj unikal'-
nyj nomer.
/usr/spool/at/lasttimedone
Soderzhit "chchchch" dlya poslednego chasa raboty.
/usr/spool/at/past
Katalog rabot, kotorye vypolnyayutsya v nastoyashchee
vremya.
/usr/lib/atrun
Programma, kotoraya vypolnyaet raboty v soot-
vetstvii s raspisaniem.
DOPOLNITELXNYE SSYLKI :
calendar, cron
DIAGNOSTIKA:
Soobshcheniya o razlichnyh sintaksicheskih oshibkah i ukaza-
niyah vremeni vne dopustimogo diapazona.
15
APK 00210-01 33 01-4
ZAMECHANIYA:
Vsledstvie diskretnosti vypolneniya /usr/lib/atrun
mogut proishodit' oshibki v planirovanii raboty s opoz-
daniem do 24 chasov.
16
APK 00210-01 33 01-4
IMYA:
awk - yazyk skanirovaniya i obrabotki teksta
FORMAT:
awk [-fc] [prog] [fajl]...
OPISANIE:
Komanda awk yavlyaetsya interpretatorom svoeobraznogo
yazyka, prednaznachennogo dlya obrabotki tekstov. V
kazhdom vhodnom fajle "fajl" osushchestvlyaetsya poisk
strok, kotorye sootvetstvuyut odnomu iz nabora shablo-
nov, zadannyh v argumente "prog". S kazhdym shablonom v
"prog" mozhet byt' svyazano nekotoroe dejstvie, kotoroe
budet vypolneno kogda ustanovitsya sootvetstvie mezhdu
strokoj fajla "fajl" i dannym shablonom. Nabor shablonov
mozhet zadavat'sya libo neposredstvenno v parametre
"prog", libo ukazyvat'sya kak "-f fajl".
Fajly schityvayutsya po poryadku.Esli fajly ne ukazany ili
zadan parametr "-", ispol'zuetsya standartnyj fajl vvo-
da. Kazhdaya stroka sravnivaetsya s shablonom kazhdogo ope-
ratora "shablon-dejstvie". Dlya kazhdogo sootvetstvuyushchego
shablona vypolnyaetsya svyazannoe s nim dejstvie.
Vhodnaya stroka sostoit iz polej, kotorye razdeleny
probelami (eto umolchanie mozhet byt' izmeneno s pomoshch'yu
FS). Polya oboznachayutsya $1,$2,...;. $0 otnositsya ko
vsej stroke.
Operator "shablon-dejstvie" imeet sleduyushchij vid:
17
APK 00210-01 33 01-4
shablon {dejstvie}
Otsutstvie chasti "{dejstvie}" oznachaet pechat' soot-
vetstvuyushchih "shablonu" strok. Otsutstvie "shablona" oz-
nachaet, chto "dejstvie" vypolnyaetsya nad kazhdoj vvodimoj
strokoj.
Dejstvie predstavlyaet soboj posledovatel'nost' opera-
torov.
Imeyutsya sleduyushchie operatory:
if(uslovie) operator [else operator]
while (uslovie) operator
for (vyr; uslovie; vyr) operator
break
continue
{ [operator]... }
peremennaya = vyr
print [spisok-vyr] [>vyr]
printf format [,spisok-vyr] [>vyr]
next # propustit' ostal'nye shablony
# dlya etoj vhodnoj stroki
exit # propustit' ostal'noj vvod.
Operatory zakanchivayutsya tochkoj s zapyatoj, simvolom
novoj stroki ili pravoj skobkoj. Pustoj spisok vyrazhe-
nij otnositsya ko vsej stroke. Vyrazheniya predstavlyayut
soboj stroku ili chislovye znacheniya i stroyatsya s po-
moshch'yu operacij +, -, *, /, % i konkatenaciya (ukazyva-
emaya probelom). V vyrazheniyah dopuskayutsya takzhe opera-
18
APK 00210-01 33 01-4
cii yazyka Si ++, --, +=, -=, *=, /= i %=. Peremennye
mogut predstavlyat' soboj skalyary, elementy massivov
(oboznachaemye x[i]) ili polya. Nachal'nymi znacheniyami
peremennyh yavlyayutsya pustye stroki. Indeksami massivov
mogut byt' lyubye stroki, ne obyazatel'no chislovye - eto
pozvolyaet organizovat' nekotoruyu raznovidnost' associ-
ativnoj pamyati. Strokovye konstanty zaklyuchayutsya v ka-
vychki "...".
Operator print vydaet svoi parametry v standartnyj
vyvod (ili v fajl, esli zadano ">fajl"), razdelyaya ih
tekushchim razdelitelem vyhodnyh polej i zavershaya razde-
litelem vyhodnyh zapisej. Operator printf formatiruet
svoj spisok vyrazhenij v sootvetstvii s formatom.
Vstroennaya funkciya length vozvrashchaet dlinu svoego pa-
rametra, rassmatrivaemogo kak stroku, ili vsej stroki,
esli parametr otsutstvuet. Imeyutsya takzhe vstroennye
funkcii ehr, log, sqrt i int, poslednyaya usekaet znache-
nie svoego parametra do celogo. Funkciya substr(s,m,n)
vozvrashchaet n-simvol'nuyu podstroku stroki s, nachinayushchu-
yusya s m-oj pozicii. Funkciya sprintf(fmt,vyr,vyr,...)
formatiruet vyrazheniya v sootvetstvii s printf forma-
tom, zadannym posredstvom "fmt",i vozvrashchaet rezul'ti-
ruyushchuyu stroku.
SHablony predstavlyayut soboj proizvol'nye bulevy kombi-
nacii (!, ||, && i skobki) regulyarnyh vyrazhenij i vy-
razhenij otnosheniya. Regulyarnye vyrazheniya dolzhny obram-
19
APK 00210-01 33 01-4
lyat'sya znakami "/". Izolirovannye regulyarnye vyrazheniya
v shablone otnosyatsya ko vsej stroke. Regulyarnye vyrazhe-
niya mogut prisutstvovat' takzhe i v vyrazheniyah otnoshe-
niya.
SHablon mozhet sostoyat' iz dvuh shablonov, razdelennyh
zapyatoj (v etom sluchae dejstvie vypolnyaetsya dlya vseh
strok mezhdu strokoj, v kotoroj vstrechaetsya pervyj
shablon i strokoj, v kotoroj vstrechaetsya vtoroj
shablon).
Vyrazhenie otnosheniya mozhet imet' odnu iz sleduyushchih
form:
vyrazhenie oppodb regulyarnoe-vyrazhenie
vyrazhenie opotn vyrazhenie
gde "opotn" predstavlyaet soboj odnu iz shesti oreracij
otnosheniya yazyka Si, a "oppodb" predstavlyaet soboj libo
znak ^ ("vhodit"), libo !^ ("ne vhodit"). Uslovie
predstavlyaet soboj arifmeticheskoe vyrazhenie, vyrazhenie
otnosheniya libo ih bulevu kombinaciyu.
Special'nye shablony BEGIN i END mogut ispol'zovat'sya
dlya polucheniya upravleniya pered schityvaniem pervoj
vhodnoj stroki i posle schityvaniya poslednej. BEGIN
dolzhen byt' pervym shablonom, a END - poslednim.
Otdel'nyj simvol "c" mozhet ispol'zovat'sya dlya razdele-
niya polej putem ukazaniya v nachale programmy:
20
APK 00210-01 33 01-4
BEGIN {FS="c"}
libo putem ispol'zovaniya klyucha "-fc".
K imenam peremennyh so special'nym znacheniem otnosyat-
sya:
NF - kolichestvo polej v tekushchej zapisi;
NR - poryadkovyj nomer tekushchej zapisi;
FILENAME - imya tekushchego vhodnogo fajla;
FS - razdelitel' vhodnyh polej (po umolchaniyu -
probel);
RS - razdelitel' vhodnyh zapisej (po umolchaniyu -
simvol novoj stroki);
OFS - razdelitel' vyhodnyh polej (po umolchaniyu -
probel);
ORS - razdelitel' vyhodnyh zapisej (po umolchaniyu
- simvol novoj stroki);
OFMT - vyhodnoj format dlya chisel (po umolchaniyu -
"%.6g");
$0 - obrabatyvaemaya stroka;
$i - i-toe pole obrabatyvaemoj stroki.
PRIMERY:
Pechat' strok s dlinoj bolee 72 simvolov:
21
APK 00210-01 33 01-4
length > 72
Pechat' pervyh dvuh polej v obratnom poryadke:
{print $2, $1}
Pechat' polej v obratnom poryadke:
{for (i=NF; i>0; --i) print $i}
Pechat' vseh strok, nachinaya so stroki, soderzhashchej slovo
"start" do stroki so slovom "stop" vklyuchitel'no:
/start/,/stop/
Pechat' vseh strok, u kotoryh pervoe pole otlichaetsya ot
pervogo polya predydushchej stroki:
$1 != prev {print; prev = $1}
DOPOLNITELXNYE SSYLKI :
lex, sed.
Imeetsya otdel'noe opisanie awk.
DIAGNOSTIKA:
V versii awk dlya mashin s ogranichennym razmerom adresu-
emoj pamyati (poryadka 64Kbajt na process) osnovnye di-
agnosticheskie soobshcheniya zameneny nomerami oshibok. Pri
etom chast' dignosticheskoj informacii teryaetsya dlya
pol'zovatelya. Dalee privoditsya spisok diagnosticheskih
soobshchenij vydavaemyh polnoj versiej awk s ih nomerami
(poteryannaya informaciya oboznachaetsya (?)):
22
APK 00210-01 33 01-4
1 : unknown type (?) in penter
2 : unknown type (?) in freetr
3 : regular expression too long
4 : unknown type (?) in cfoll
5 : unknown type (?) in first
6 : can't open (?)
7 : record `(?)' too long
8 : record `(?)' has too many fields
9 : record `(?)' has too many fields
10 : built giant record `(?)...'
11 : trying to access field (?)
12 : can't open (?)
13 : out of space in ALLOC
14 : illegal statement (?)
15 : unexpected break, continue or next
16 : unexpected break, continue or next
17 : unknown boolean operator (?)
18 : unknown relational operator (?)
19 : out of temporaries in gettemp
20 : format item (?)... too long
21 : not enough arguments in printf((?))
22 : illegal arithmetic operator (?)
23 : division by zero
24 : division by zero
25 : division by zero
26 : division by zero
27 : illegal assignment operator (?)
28 : (?) is not an array
23
APK 00210-01 33 01-4
29 : illegal jump type (?)
30 : illegal function type (?)
31 : string (?) too long to print
32 : too many output files (?)
33 : can't open file (?)
34 : out of space in makesymtab
35 : symbol table overflow at (?)
36 : can't set $0
37 : can't set $0
38 : illegal reference to array (?)
39 : funny variable (?): (?) (?) (?) (?)
40 : out of space in tostring on (?)
ZAMECHANIYA:
Ne sushchestvuet yavnogo preobrazovaniya mezhdu chislami i
strokami. Dlya togo, chtoby vyrazhenie obrabatyvalos' kak
chislo, dobav'te k nemu 0, a dlya togo, chtoby ono obra-
batyvalos' kak stroka, ob'edinite ego s "".
24
APK 00210-01 33 01-4
IMYA:
bas - interpretator yazyka BASIC.
FORMAT:
bas [file]
OPISANIE:
Komanda bas yavlyaetsya interpretatorom odnogo iz dialek-
tov yazyka BASIC. Esli v komandnoj stroke zadano imya
fajla "file", to pered vyzovom interpretatora etot
fajl schityvaetsya (predpolagaetsya, chto on soderzhit
programmu na yazyke BASIC). Bas dopuskaet stroki sledu-
yushchego vida:
operator
metka operator
V kachestve metki ispol'zuetsya celoe polozhitel'noe
chislo. Pomechennye operatory zapominayutsya dlya posledu-
yushchego vypolneniya i sortiruyutsya v poryadke vozrastaniya
znachenij metok. Nepomechennye operatory vypolnyayutsya ne-
medlenno. Esli operator soderzhit vychislyaemoe vyrazhenie
bez prisvaivaniya, rezul'tat vydaetsya srazu.
SINTAKSIS OPERATOROV:
vyrazhenie
Vyrazhenie vypolnyaetsya dlya dostizheniya zhelaemogo
effekta (prisvaivanie ili vyzov fukcii) ili dlya
pechati.V dal'nejshem vyrazhenie budet oboznachat'sya
simvolom V;
25
APK 00210-01 33 01-4
comment ...
|tot operator ignoriruetsya, primenyaetsya dlya
vklyucheniya kommentariya v programmu;
done Vyhod iz interpretarora obratno v sistemu;
dump Vyzyvaet pechat' imeni i tekushchego znacheniya vseh
peremennyh v processe vypolneniya programmy;
edit Vhod v redaktor ed. V kachestve imeni fajla re-
daktoru ed peredaetsya parametr file. Posle vyho-
da iz redaktora proishodit vozvrat v interpreta-
tor, prichem programma nahodyashchayasya v fajle file,
kompiliruetsya zanovo.
for identifikator = V V operator
for identifikator = V V
gruppa operatorov
next
Operator for porozhdaet mnogokratnoe vypolnenie
operatora (pervaya forma zapisi) ili gruppy ope-
ratorov (vtoraya forma zapisi), kontroliruya koli-
chestvo iteracij po znacheniyu peremennoj name.
|toj peremennoj prisvaivaetsya znachenie pervogo
vyrazheniya, kotoroe uvelichivaetsya na edinicu
posle kazhdogo shaga vypolneniya cikla. Cikl pro-
dolzhaetsya do teh por poka, znachenie peremennoj
ne prevyshaet znacheniya vtorogo vyrazheniya.
goto V
26
APK 00210-01 33 01-4
Vyrazhenie vychislyaetsya, perevoditsya v celoe,
posle chego proishodit perehod k operatoru, metka
kotorogo ravna znacheniyu vyrazheniya. Programma
prodolzhaet vypolnyatsya s etogo mesta. Esli dannyj
operator ne pomechen, to pered ego interpretaciej
kompiliruyutsya operatory nakoplennye ranee.
if V operator
if V
gruppa operatorov
[ else
gruppa operatorov ]
fi
Operator (pervaya forma) ili gruppa operatorov
(vtoraya forma) vypolnyaetsya, esli znachenie vyra-
zheniya ne ravno nulyu. Vo vtoroj forme dopuskaetsya
nalichie al'ternativnoj gruppy operatorov.
list [V [V]]
|tot operator primenyaetsya dlya prosmotra teksta
programmy. Esli otsutstvuyut argumenty, vydaetsya
vsya programma. Esli prisutstvuet odin argument,
to vydaetsya tol'ko odin operator, metka kotorogo
ravna znacheniyu zadannogo vyrazheniya. Esli zadany
dva argumenta, to vydayutsya operatory v ukazannom
diapazone.
print spisok
"Spisok" vklyuchaet v sebya vyrazheniya, peremennye i
27
APK 00210-01 33 01-4
tekstovye konstanty (tekstovye konstanty berutsya
v kavychki (")). Operator print vydaet znacheniya
perechislennyh vyrazhenij ili peremennyh sovmestno
s tekstom.
prompt spisok
Dejstvuet analogichno operatoru print, tol'ko
posle vydachi poslednego simvola ne proishodit
perehoda na novuyu stroku.
return [V]
Vyrazhenie vychislyaetsya i ego znachenie ispol'zuet-
sya v kachestve znacheniya, kotoroe vozvrashchaet
funkciya. Esli argument otsutstvuet, vozvrashchaetsya
nol'.
run Programma kompiliruetsya, datchiku sluchajnyh chisel
ustanavlivaetsya startovoe znachenie. Upravlenie
peredaetsya operatoru s naimen'shim znacheniem
metki.
save [V [V]]
Operator save rabotaet analogichno operatoru
list, tol'ko vyvod idet ne na terminal, a v fajl
file. Esli komanda bas byla vyzvana bez argumen-
ta, ispol'zuetsya fajl b.out v tekushchem kataloge.
SINTAKSIS VYRAZHENIJ:
identifikator
Identifikator mozhet soderzhat' proizvol'noe koli-
28
APK 00210-01 33 01-4
chestvo simvolov, odnako znachimymi schitayutsya per-
vye chetyre. Identifikator dolzhen nachinat'sya s
bukvy i mozhet sostoyat' tol'ko iz latinskih
strochnyh bukv i cifr.
chislo CHislo opredelyaet chislovuyu konstantu i zapisyva-
etsya v tradicionnom fortranovskom stile. CHislo
sostoit iz cifr i mozhet soderzhat' desyatichnuyu
tochku ili znak poryadka "e" s posleduyushchej ekspo-
nentoj. Naprimer: 4, -15, 0.34, 1.2e+5.
(V) Skobki primenyayutsya dlya izmeneniya starshinstva vy-
polneniya operacij.
_V Inversiya znacheniya vyrazheniya.
V operaciya V
Vypolnenie operacii.
V( [V[, V]] )
Vyzov funkcii s zadannym chislom argumentov. Zna-
chenie pervogo vyrazheniya ispol'zuetsya v kachestve
metki operatora, s kotorogo nachinaetsya funkciya.
Esli znachenie vyrazheniya poluchaetsya otricatel'-
nym, vyzyvaetsya sootvetstvuyushchaya vstroennaya
funkciya (pravda, neizvetno kakaya imenno).
identifikator [ V[, V]]
Znachenie vyrazheniya, perevedennoe v celoe, is-
pol'zuetsya dlya indeksacii massivov. Zapis' vida
a[1,2] ravnosil'na zapisi vida a[1][2]. Znacheniya
29
APK 00210-01 33 01-4
indeksov usekayutsya do diapazona ot 0 do 32767.
SPISOK OPERACIJ:
= Operaciya prisvaivaniya. Levyj operand dolzhen byt'
identifikatorom ili elementom massiva. Znachenie
pravogo operanda prisvaivaetsya levomu.
& | Operaciya logicheskoe "I" (&) daet rezul'tat nol',
esli kakoj-libo iz operandov raven nulyu, i ne
nol', esli oba operanda ne ravny nulyu. Operaciya
logicheskoe "ILI" (|) daet rezul'tat nol', esli
oba operanda ravny nulyu, i ne nol', esli kakoj-
libo iz nih ne raven nulyu.
< <= > >= <>
Operacii otnosheniya:
< men'she;
<= ne bol'she;
> bol'she;
>= ne men'she;
<> ne ravno;
vozvrashchayut znachenie odnogo iz argumentov esli otnoshe-
nie soblyudaetsya, v protivnom sluchae vozvrashchaetsya nol'.
Opercii otnosheniya odnogo urovnya dopuskayut vlozhennost'
sleduyushchego vida: rezul'tat operacii a>b>c, budet ana-
logichen rezul'tatu operacii a>b&b>c;
30
APK 00210-01 33 01-4
+ - Slozhenie i vychitanie;
* / Umnozhenie i delenie;
^ Vozvedenie v stepen';
VSTROENNYE FUNKCII:
arg(i)
Poluchenie i-togo parametra tekushchego vyzova
funkcii;
exp(x)
|ksponenta ot x;
log(x)
Natural'nyj logarifm ot x;
sqr(x)
Kvadratnyj koren' ot x;
sin(x)
Sinus ot x (radiany);
cos(x)
Kosinus ot x (radiany);
atn(x)
Arktangens ot x. Vozvrashchaet znacheniya v diapazone
ot -J/2 do J/2;
rnd() Datchik sluchajnyh chisel, vozvrashchaet znacheniya v
diapazone ot 0 do 1;
31
APK 00210-01 33 01-4
expr()
Programmnyj vvod. Stroka chitaetsya iz standartno-
go fajla vvoda i rassmatrivaetsya kak vyrazhenie.
Programma poluchaet znachenie etogo vyrazheniya;
abs() Absolyutnoe znachenie;
int(x)
Perevod x v celoe;
FAJLY:
/tmp/btm* vremennye fajly
b.out fajl dlya sohraneniya programmy
/bin/ed redaktor
DIAGNOSTIKA:
Sintaksicheskie oshibki privodyat k vydache nekorrektnoj
stroki.
32
APK 00210-01 33 01-4
IMYA:
basename - otbrosit' suffiksy i prefiksy imeni fajla.
FORMAT:
basename stroka [suffiks]
OPISANIE:
Komanda basename udalyaet iz "stroki" vse prefiksy,
okanchivayushchiesya simvolom "/", a takzhe "suffiks", esli
on prisutstvuet v stroke, i vydaet rezul'tat v stan-
dartnyj fajl vyvoda. |ta komanda obychno ispol'zuetsya v
programmah napisannyh na yazyke SHELL.
PRIMERY:
Privedem proceduru, vyzyvaemuyu s parametrom
/usr/src/cmd/cat.c, kotoraya kompiliruet fajl s ukazan-
nym imenem i pomeshchaet rezul'tat v fajl cat v tekushchem
kataloge:
cc $1
mv a.out `basename $1 .c`
DOPOLNITELXNYE SSYLKI :
sh
33
APK 00210-01 33 01-4
IMYA:
bc - interpretator yazyka BC.
FORMAT:
bc [-c] [-l] [fajl...]
OPISANIE:
Komanda bc predstavlyaet soboj interaktivnyj processor
dlya yazyka, kotoryj po sintaksisu napominaet yazyk Ci,
no pozvolyaet vypolnyat' arifmeticheskie operacii s pro-
izvol'noj tochnost'yu. Programma na dannom yazyke schity-
vaetsya iz standartnogo fajla vvoda. Esli zadany argu-
menty tipa "fajl", to predpolagaetsya, chto eto imena
fajlov, soderzhashchih rabochie podprogrammy na yazyke BC.
|ti fajly schityvayutsya pered vypolneniem osnovnoj prog-
rammy. Esli zadan parametr "-l", to ispol'zuetsya stan-
dartnaya biblioteka funkcij proizvol'noj tochnosti. V
privodimom kratkom opisanii sintaksisa yazyka BC, is-
pol'zuyutsya sleduyushchie sokrashcheniya:
B posledovatel'nost' simvolov ot "a" do "z";
V vyrazhenie;
OP operator.
KOMMENTARII:
ogranichivayutsya posledovatel'nostyami simvolov "/*" i
"*/"
IMENA:
34
APK 00210-01 33 01-4
prostye peremennye: B
elementy massiva: B[V]
slova "ibase", "obase" i "scale"
PROCHIE OPERANDY:
chisla proizvol'noj dliny
(vozmozhno so znakom i desyatichnoj tochkoj).
(V)
sqrt(B) kvadratnyj koren'
length(B) chislo znachashchih desyatichnyh cifr
scale(B) tochnost'
B(V,...,V) vyzov podprogrammy
OPERACII:
+ - * / % ^ (% - ostatok, ^ - stepen')
++ -- (prefiks i postfiks,
primenyayutsya k imenam)
== <= >= != < >
= =+ =- =* =/ =% =^
OPERATORY:
V
{OP; ... ;OP}
if(V) OP
while(V) OP
for(V;V;V) OP
pustoj operator
break
quit
35
APK 00210-01 33 01-4
OPREDELENIYA FUNKCIJ:
define B(B, ... ,B){
auto B, ... ,B
OP; ... OP
return(B)
}
Funkcii iz standartnoj biblioteki:
s(x) - sinus;
c(h) - kosinus;
e(h) - eksponenta;
l(x) - logarifm;
a(h) - arktangens;
j(n,x) - funkciya Besselya
Vse parametry funkcij peredayutsya po znacheniyu.
Znachenie operatora, yavlyayushchegosya vyrazheniem, raspechaty-
vaetsya, esli osnovnoj operaciej ne yavlyaetsya prisvaiva-
nie. Operatory mogut razdelyat'sya libo tochkami s zapya-
toj, libo simvolami novoj stroki. Prisvaivanie pere-
mennoj scale vliyaet na kolichestvo cifr, poluchaemyh v
rezul'tate arifmeticheskih operacij po pravilam dc.
Prisvaivaniya peremennym ibase i obase ustanavlivaet
vhodnoe i vyhodnoe osnovaniya sootvetstvenno.
Odna i ta zhe bukva mozhet ispol'zovat'sya v kachestve
massiva, funkcii i prostoj peremennoj odnovremenno.
Vse peremennye v programme yavlyayutsya global'nymi. Pere-
mennye "auto" pri vyzove funkcij pomeshchayutsya v stek.
36
APK 00210-01 33 01-4
Pri ispol'zovanii massivov v kachestve parametrov
funkcii i pri opredelenii ih kak avtomaticheskih pere-
mennyh, imya massiva dolzhno soprovozhdat'sya pustymi
kvadratnymi skobkami.
Naprimer, podprogramma:
scale = 20
define e(x){
auto a,b,c,i,s
a = 1
b = 1
s = 1
for(i=1; i==1; i++){
a = a*x
b = b*i
c = a/b
if(c == 0) return(s)
s = s+c
}
}
opredelyaet funkciyu dlya vychisleniya priblizhennogo znache-
niya pokazatel'noj funkcii, a
for(i=1; i <= 10; i++) e(i)
vydaet priblizhennye znacheniya pokazatel'noj funkcii dlya
pervyh desyati celyh chisel.
Komanda bc fakticheski predstavlyaet soboj preprocessor
37
APK 00210-01 33 01-4
dlya dc, kotoryj vyzyvaetsya avtomaticheski, esli ne pri-
sutstvuet klyuch "-c" (tol'ko kompilyaciya). V etom sluchae
rezul'tat napravlyaetsya ne na vhod dc, a v standartnyj
fajl vyvoda.
FAJLY:
/usr/lib/lib.b matematicheskaya biblioteka
DOPOLNITELXNYE SSYLKI :
dc
Imeetsya otdel'noe opisanie bc.
ZAMECHANIYA:
Otsutstvuyut operacii &&, || i !. Operator for dolzhen
imet' vse tri vyrazheniya. Operator quit srabatyvaet pri
schityvanii, a ne pri vypolnenii.
38
APK 00210-01 33 01-4
IMYA:
cal - pechat' kalendarya
FORMAT:
cal [mesyac] god
OPISANIE:
Komanda cal vydaet kalendar' ukazannogo goda. Esli
zadan god i mesyac, vydaetsya kalendar' tol'ko dlya etogo
mesyaca. "god" mozhet byt' v predelah ot 1 do 9999. "me-
syac" yavlyaetsya chislom ot 1 do 12.
ZAMECHANIYA:
Ispol'zovanie dannoj komandy dlya polucheniya otvetov na
voprosy tipa: "Na kakoj den' nedeli prihodil's' 2 yan-
varya 1928 goda?" mozhet okazat'sya nepravomernym, tak
kak v programme ne uchityvayutsya nekotorye istoricheskie
fakty.
Bud'te vnimatel'ny: "cal 78" otnositsya k rannej hris-
tianskoj ere, a ne k XX stoletiyu.
39
APK 00210-01 33 01-4
IMYA:
calendar - "elektronnyj" ezhednevnik
FORMAT:
calendar [-]
OPISANIE:
Komanda calendar prosmatrivaet fajl "calendar" v teku-
shchem spravochnike i vydaet vse stroki, soderzhashie segod-
nyashnyuyu ili zavtrashnyuyu datu. Daty mogut zadavat'sya v
vide: "mesyac.den'", naprimer, "12/7", no ne "7 dekab-
rya" ili "7/12". V konce nedeli ponyatie "zavtra" vklyu-
chaet i ponedel'nik.
Kogda prisutstvuet klyuch "-", komanda calendar prodely-
vaet ukazannuyu rabotu dlya kazhdogo pol'zovatelya, ime-
yushchego v svoem registracionnom spravochnike fajl
"calendar", i posylaet emu rezul'tat, esli on imeetsya,
s pomoshch'yu mail. Obychno eto delaetsya v nochnye chasy
ezhednevno pod upravleniem cron.
FAJLY:
calendar ezhednevnik
/usr/lib/calendar generator poiskovyh klyuchej
/etc/passwd
/tmp/cal* vremennyj fajl
Ispol'zuyutsya: egrep, sed, mail
DOPOLNITELXNYE SSYLKI :
at, cron, mail
40
APK 00210-01 33 01-4
ZAMECHANIYA:
Rasshirenie ponyatiya "zavtra" v komande calendar ne ot-
nositsya k dnyam, idushchim posle prazdnikov.
41
APK 00210-01 33 01-4
IMYA:
cat - vydacha soderzhimogo fajlov.
FORMAT:
cat [-] [-u] fajl...
OPISANIE:
Komanda cat posledovatel'no schityvaet kazhdyj "fajl" i
zapisyvaet rezul'tat v standartnyj fajl vyvoda. Tak,
komanda:
cat file
raspechatyvaet ukazannyj fajl, a komanda
cat file1 file2 > file3
ob'edinyaet pervye dva fajla i pomeshchaet rezul'tat v
tretij fajl.
Esli vhodnye fajly ne ukazany ili zadan klyuch "-", is-
pol'zuetsya standartnyj fajl vvoda. Neobyazatel'nyj pa-
rametr "-u" ukazyvaet na neobhodimost' podavleniya
obychno vypolnyaemoj cat buferizacii.
DOPOLNITELXNYE SSYLKI :
pr, cp
ZAMECHANIYA:
Bud'te ostorozhny i ne ispol'zujte komand vida "cat a b
> a" i "cat" a b > b", kotorye razrushayut vhodnye fajly
pered schityvaniem.
42
APK 00210-01 33 01-4
IMYA:
cb - oformlenie Si-programm
FORMAT:
cb
OPISANIE:
Komanda cb perepisyvaet kopiyu C-programmy iz stan-
dartnogo fajla vvoda v standartnyj fajl vyvoda s pro-
belami i otstupami, otobrazhayushchimi strukturu programmy.
43
APK 00210-01 33 01-4
IMYA:
cc - vyzov kompilyatora s yazyka Si
FORMAT:
cc [klyuch]... fajl...
OPISANIE:
Komanda cc prednaznachena dlya vyzova kompilyatora s yazy-
ka Si. Ona vosprinimaet parametry neskol'kih tipov.
Parametry, imena kotoryh zakanchivayutsya na ".c", schita-
yutsya ishodnymi programmami na yazyke Si.Oni kompiliru-
yutsya i kazhdaya ob'ektnaya programma ostaetsya v fajle,
imya kotorogo poluchaetsya iz imeni sootvetstvuyushchego is-
hodnogo fajla posle zameny ".c" na ".o". Fajl ".o"
udalyaetsya, esli odna Si-programma kompiliruetsya i zag-
ruzhaetsya v odnom prohode.
Analogichno parametry, ch'i imena zakanchivayutsya na ".s",
schitayutsya ishodnymi programmami na yazyke assemblera i
assembliruyutsya, v rezul'tate chego poluchayutsya fajly
".o".
V komande cc mogut zadavat'sya sleduyushchie klyuchi:
-c Otmenyaet fazu sborki i vyzyvaet generaciyu
ob'ektnogo koda dazhe togda, kogda kompiliruetsya
tol'ko odna programma;
-f Ukazanie o tom, chto na mashine otsutstvuet FPP-
processor. V etom sluchae vmeste s programmoj
44
APK 00210-01 33 01-4
zagruzhayutsya neobhodimye podprogrammy iz bibli-
oteki emulyacii FPP-processora;
-p Vklyuchenie profilirovaniya programmy. Standartnaya
programma zapuska zamenyaetsya programmoj, kotoraya
pri zapuske avtomaticheski vyzyvaet monitor (2) i
organizuet vyvod fajla mon.out pri normal'nom
zavershenii vypolneniya ob'ektnoj programmy. Posle
etogo mozhet byt' postroen grafik vypolneniya s
pomoshch'yu komandy prof;
-d Generaciya koda i dopolnitel'noj informacii dlya
otladchika "cdeb";
-O Vklyuchenie fazy optimizacii ob'ektnogo koda;
-S Kompiliruet perechislennye Si-programmy i ostav-
lyaet rezul'tat raboty v vide assemblernogo
teksta v sootvetstvuyushchih fajlah s suffiksami
".s";
-e Zapuskaet tol'ko makroprocessor dlya perechislen-
nyh Si-programm i vydaet rezul'tat v standartnyj
fajl vyvoda. Dlya ispol'zovaniya rezul'tata v pos-
leduyushchih vyzovah "cc" nuzhno obrabotat' rezul'tat
redaktorom "sed" po sleduyushchej programme: "s/^#
/# line/";
-a Blokiruetsya vyzov makroprocessora "cpp". Flag
ispol'zuetsya, esli vhodnoj tekst uzhe proshel ob-
rabotku preprocessorom;
45
APK 00210-01 33 01-4
-P Kazhdyj fajl, imya kotorogo imeet suffiks ".c" ob-
rabatyvaetsya tol'ko makroprocessorom "cpp",
rezul'tat raboty kotorogo pomeshchaetsya v fajl s
sootvetstvuyushchim imenem i suffiksom ".i", pri
etom podavlyaetsya vyvod strok vida "#line ...";
-C Obychno makroprocessor "cpp" ubiraet kommentarii
iz svoego vyvoda. Flag -C blokiruet unichtozhenie
kommentariev, chto byvaet neobhodimo dlya programm
"xstr" ili "lint";
-o vyhod
Pomeshchaet okonchatel'nyj rezul'tat v fajl s imenem
"vyhod". Esli ispol'zuetsya etot klyuch, fajl
"a.out" ne budet izmenen.
-Dimya=opr
-Dimya
Opredelyaet ukazannoe "imya" dlya preprocessora, po
analogii s "#define". Esli opredelenie ne zada-
no, dannoe imya opredelyaetsya kak "1";
-Uimya Udalyaet vse nachal'nye opredeleniya ukazannogo
imeni;
-Ikat Poisk fajlov "#include", ch'i imena ne nachinayutsya
s simvola "/", vsegda proizvoditsya snachala v te-
kushchem spravochnike, zatem v spravochnikah "kat",
perechislennyh pri klyuche -I, a zatem - v katalo-
gah standartnogo spiska;
46
APK 00210-01 33 01-4
-B stroka
Ishchet zamenyayushchie fazy kompilyatora v fajlah s ime-
nem "stroka" s suffiksami ccp, c0, c1 i c2. Esli
"stroka" pustaya, ispol'zuetsya standartnaya re-
zervnaya versiya;
-t[p012]
Ishchet tol'ko ukazannye fazy kompilyatora v fajlah,
imena kotoryh stroyatsya v sootvetstvii s klyuchem
-B. Pri otsutstvii klyucha -B podrazumevaetsya sle-
duyushchaya "stroka": "/usr/c/".
-T[al]imya
Assembler (esli ukazano "a") ili redaktor svyazej
("l") vyzyvayutsya iz fajla "imya" vmesto vyzyva-
emyh po umolchaniyu.
Ostal'nye parametry yavlyayutsya libo klyuchami redaktora
svyazej, libo sovmestimymi s Si ob'ektnymi programmami,
poluchennymi obychno v rezul'tate predshestvuyushchih vypol-
nenij cc, libo bibliotekami sovmestimyh s Si programm.
|ti programmy, vmeste s rezul'tatami ukazannyh kompi-
lyacij zagruzhayutsya (v zadannom poryadke), davaya v re-
zul'tate vypolnyaemuyu programmu s imenem a.out.
FAJLY:
fajl.c Vhodnoj fajl
fajl.o Ob'ektnyj fajl
a.out Zagruzochnyj vyhod
/tmp/ctm? Vremennyj
47
APK 00210-01 33 01-4
/lib/cpp preprocessor
/lib/c0 kompilyator 0 prohod
/lib/c1 kompilyator 1 prohod
/lib/fc1 1 prohod pri flage "-f"
/usr/c/oc[01] rezervnyj kompilyator
/usr/c/ocpp rezervnyj preprocessor
/lib/c2 neobyazatel'nyj optimizator
/lib/crt0.o Dinamicheskij starter
/lib/mcrt0.o Starter dlya profilirovaniya
/lib/lib[as].a Standartnye biblioteki
/usr/include standartnyj katalog dlya
fajlov "#include".
/lib/fcrt0.0 Starter dlya flaga "-f"
DOPOLNITELXNYE SSYLKI :
cdeb, prof, adb, ld
Imeetsya otdel'noe opisanie yazyka Si.
DIAGNOSTIKA:
Diagnosticheskie soobshcheniya, generiruemye samim kompilya-
torom si, yavlyayutsya dostatochno ponyatnymi. V nekotoryh
sluchayah soobshcheniya mogut generirovat'sya assemblerom ili
redaktorom svyazej.
48
APK 00210-01 33 01-4
IMYA:
ccat - vydacha soderzhimogo kompressirovannyh fajlov.
FORMAT:
ccat [fajl ...]
OPISANIE:
Komanda ccat vydaet soderzhimoe fajlov, "szhatyh" s po-
moshch'yu komandy compact. Fajl ne izmenyaetsya.
DIAGNOSTIKA:
Soobshcheniya o fajlah, kotorye ne mogut byt' otkryty, i
t.p.
DOPOLNITELXNYE SSYLKI :
compact, uncompact
49
APK 00210-01 33 01-4
IMYA:
cd - smenit' rabochij spravochnik
FORMAT:
cd dirname
OPISANIE:
Komanda cd zadaet spravochnik s imenem "dirname" v ka-
chestve tekushchego rabochego spravochnika. Dlya izmeneniya
tekushchego spravochnika neobhodimo chtoby spravochnik
"dirname" imel razreshenie na poisk v nem dlya dannogo
pol'zovatelya.
Poskol'ku dlya vypolneniya kazhdoj komandy sozdaetsya
novyj process, komanda cd byla by neeffektivnoj, esli
by ona byla napisana kak obychnaya komanda. Poetomu ona
yavlyaetsya vstroennoj funkciej yazykov upravleniya zadani-
yami SHELL i CSHELL.
DOPOLNITELXNYE SSYLKI :
csh, sh, pwd, chdir.
50
APK 00210-01 33 01-4
IMYA:
chmod - izmenit' status fajla
FORMAT:
chmod status fajl ...
OPISANIE:
Status kazhdogo iz perechislennyh fajlov izmenyaetsya v
sootvetstvii so znacheniem parametra "status", kotoroe
mozhet byt' absolyutnym ili simvolicheskim. Absolyutnoe
znachenie statusa predstavlyaet soboj vos'merichnoe
chislo, stroyashcheesya po pravilu "ili" iz sleduyushchih znache-
nij:
4000 ustanovit' identifikator hozyaina fajla pri vy-
polnenii;
2000 ustanovit' identifikator gruppy po gruppe hozya-
ina fajla pri vypolnenii;
1000 bit sohraneniya obraza teksta;
0400 razreshenie na chtenie fajla vladel'cu;
0200 razreshenie na zapis' fajla vladel'cu;
0100 razreshenie vypolneniya (poiska v spravochnike)
vladel'cu;
0070 razreshenie chteniya, zapisi, vypolneniya (poiska)
gruppe;
0007 razreshenie chteniya, zapisi, vypolneniya prochim
51
APK 00210-01 33 01-4
pol'zovatelyam.
Simvolicheskoe znachenie "status" imeet sleduyushchij vid:
[kto] op polnomochie [op polnomochie] ...
Pole "kto" predstavlyaet soboj kombinaciyu bukv "u" (dlya
polnomochij pol'zovatelya), "g" (gruppa), "o" (prochie).
Bukva "a" zamenyaet sochetanie "ugo". Esli pole "kto"
opushcheno, po umolchaniyu prinimaetsya znachenie "a", odnako
prinimaetsya vo vnimanie maska sozdaniya fajla (sm.
umask).
Pole "op" mozhet predstavlyat' soboj "+" - dlya dobavle-
niya polnomochiya v rezhim fajla, "-" - dlya udaleniya pol-
nomochiya i "=" dlya absolyutnogo prisvaivaniya polnomochiya
(vse ostal'nye bity budut sbrosheny).
"Polnomochie" predstavlyaet soboj proizvol'nuyu kombina-
ciyu bukv "r" (chtenie), "w" (zapis'), "x" (vypolnenie),
"s" (ustanovlenie identifikacii pol'zovatelya ili grup-
py) i "t" (sohranenie tekstov posle vypolneniya).
Otsutstvie polya polnomochiya polezno ispol'zovat' tol'ko
s simvolom "=" dlya udaleniya vseh polnomochij.
PRIMERY:
Pervyj iz privedennyh nizhe primerov zapreshchaet zapis'
"prochim" pol'zovatelyam, a vtoroj delaet ukazannyj fajl
vypolnyaemym.
chmod o-w fajl
52
APK 00210-01 33 01-4
chmod +x fajl
DOPOLNITELXNYE SSYLKI:
ls, chown, stat, umask.
ZAMECHANIYA:
Mozhet byt' ukazano neskol'ko simvolicheskih rezhimov,
razdelennyh zapyatymi. Operacii vypolnyayutsya v zadannom
poryadke. Bukvu "s" imeet smysl ispol'zovat' tol'ko
sovmestno s "u" ili "g".
Tol'ko vladelec fajla (ili super-pol'zovatel') mozhet
izmenit' ego rezhim.
53
APK 00210-01 33 01-4
IMYA:
clear - ochistit' ekran terminala.
FORMAT:
clear
OPISANIE:
Komanda clear stiraet ekran terminala, ispol'zuya in-
formaciyu ob osobennostyah dannogo ustrojstva iz fajla
opisanij harakteristik terminalov (/etc/termcap).
FAJLY:
/etc/termcap opisanie harakteristik terminalov raz-
lichnyh tipov.
54
APK 00210-01 33 01-4
IMYA:
cmp - sravnenie dvuh fajlov.
FORMAT:
cmp [-l] [-s] fajl1 fajl2
OPISANIE:
Dva ukazannyh fajla sravnivayutsya. (esli parametr
"fajl1" predstavlyaet soboj "-", ispol'zuetsya stan-
dartnyj fajl vvoda). Bez parametrov komanda cmp ne vy-
daet nikakih soobshchenij, esli fajly odinakovy,ili uka-
zyvaet nomer bajta i stroki, gde proizoshlo nesovpade-
nie, esli oni otlichayutsya. Esli odin iz fajlov yavlyaetsya
nachalom drugogo, ob etom soobshchaetsya.
-l pechataet nomer bajta (desyatichnyj) i otlichayushchiesya
bajty (vos'merichnye) dlya kazhdogo nesovpadeniya;
-s dlya otlichayushchihsya fajlov nichego ne pechataetsya,
vozvrashchaetsya tol'ko kod.
DOPOLNITELXNYE SSYLKI:
diff, comm
DIAGNOSTIKA:
Vozvrashchaetsya vyhodnoj kod, ravnyj 0 dlya identichnyh
fajlov, 1 dlya otlichayushchihsya fajlov i 2 dlya nedostupnyh
ili propushchennyh parametrov.
55
APK 00210-01 33 01-4
IMYA:
col - unichtozhit' obratnye perevody stroki.
FORMAT:
col [-bfx]
OPISANIE:
Komanda col chitaet standartnyj fajl vvoda i proizvodit
zapis' v standartnyj fajl vyvoda. Ona vypolnyaet nalo-
zhenie strok, podrazumevaemoe obratnymi perevodami
stroki (ESC-7 v kode KOI-8) i pryamymi i obratnymi pe-
revodami stroki na polshaga (ESC-8 i ESC-9). Komanda
col osobenno polezna dlya fil'tracii mnogokolonochnogo
vyvoda, poluchennogo komandoj ".rt" iz pif i vyvoda,
poluchaemogo v rezul'tate ispol'zovaniya preprocessora
tbl.
Hotya komanda col vosprinimaet na vvode perevody stroki
na polshaga, ona obychno ne peredaet ih na vyvod. Vmesto
etogo tekst, kotoryj dolzhen byl poyavit'sya mezhdu strok,
sdvigaetsya k sleduyushchej nizhnej granice polnoj stroki.
|tot rezhim mozhet byt' otmenen klyuchem -f (tochno).V etom
sluchae vyhod col mozhet soderzhat' perevody stroki na
polshaga vpered, odnako kakie-libo perevody stroki
nazad vsegda otsutstvuyut.
Esli zadan klyuch -b, col predpolagaet, chto ispol'zuemoe
ustrojstvo vyvoda ne imeet vozmozhnosti vozvrata na
shag. V etom sluchae, esli neskol'ko simvolov dolzhny po-
yavit'sya na odnom i tom zhe meste, budet vydan tol'ko
56
APK 00210-01 33 01-4
poslednij schitannyj simvol.
Upravlyayushchie simvoly SI (017 v kode KOI-8) i SO (016)
schitayutsya nachalom i koncom teksta s al'ternativnym na-
borom simvolov. Nabor simvolov (ishodnyj ili al'terna-
tivnyj), svyazannyj s kazhdym schitannym pechatnym simvo-
lom, zapominaetsya. Pri vvode simvoly SI i SO vstavlya-
yutsya v nuzhnyh mestah, chtoby obespechit' sootvetstvuyushchuyu
obrabotku kazhdogo simvola.
Komanda col obychno preobrazuet probely v simvoly tabu-
lyacii, chtoby sokratit' vremya pechati. Esli ukazan klyuch
-x, eto preobrazovanie otmenyaetsya.
Iz vhodnogo potoka udalyayutsya vse upravlyayushchie simvoly,
za isklyucheniem simvolov probela (SP-040), vozvrata na
shag (BS-010), tabulyacii (HT-011), vozvrata karetki
(CR-015), novoj stroki (LF-012), za kotorym sleduet
odin iz simvolov ESC-7, ESC-8, ESC-9, SI, SO. Vse os-
tal'nye nepechataemye simvoly ignoriruyutsya.
DOPOLNITELXNYE SSYLKI:
pif, tbl, greek
ZAMECHANIYA:
Nel'zya vozvratit'sya nazad bolee, chem na 128 strok.
V stroke ne dolzhno byt' bolee 800 simvolov, vklyuchaya
simvoly vozvrata na shag.
57
APK 00210-01 33 01-4
IMYA:
colcrt - fil'tr dlya fajlov v formate pif.
FORMAT:
colcrt [-] [-2] [fajl ...]
OPISANIE:
Komanda colcrt obespechivaet virtual'nye vozmozhnosti
perevoda stroki na polshaga na polovinu mezhstrochnogo
intervala i obratnogo perevoda stroki dlya terminalov,
ne imeyushchih ukazannyh sredstv i na kotoryh povtornyj
vyvod simvola v odnu i tu zhe poziciyu razrushaet imev-
shijsya v nej simvol. Sdvinutye na polstroki simvoly i
simvoly podcherkivaniya (zamenennye na tire "-") raspo-
lagayutsya na novyh strokah mezhdu obychnymi vyhodnymi
strokami.
Neobyazatel'nyj parametr "-" podavlyaet vse podcherkiva-
niya. |to osobenno polezno dlya prosmotra polnost'yu
okajmlennyh tablic posle tbl.
Klyuch -2 vyzyvaet pechat' sdvinutyh na polstroki simvo-
lov, fakticheski udvaivaya interval vyvoda. Obychno is-
pol'zuetsya minimal'nyj interval vyvodnogo formata, ko-
toryj podavlyaet pechat' pustyh strok. Odnako dannaya
programma nikogda ne podavlyaet pechat' dvuh posledova-
tel'nyh pustyh strok. Klyuch -2 polezen pri vyvode na
ACPU, kogda vyvod soderzhit nadstrochnye i podstrochnye
indeksy, kotorye inache ne byli by vidny.
58
APK 00210-01 33 01-4
Tipichnoe ispol'zovanie komandy colcrt sleduyushchee:
tbl exum2.n | pif -ms | colcrt - | more
DOPOLNITELXNYE SSYLKI:
pif, col, more, ul.
ZAMECHANIYA:
Nel'zya vernut'sya bolee chem na 102 stroki.
V obshchem sluchae pri povtornom vyvode v odnu i tu zhe po-
ziciyu proishodit poterya simvola.Kak special'nyj slu-
chaj, v rezul'tate nalozheniya "|" i "-" ili podcherki-
vaniya poluchaetsya "+".
Dlina stroki ogranichivayutsya 132 simvolami.
Trebuetsya opredelennaya ostorozhnost' pri obrabotke
nadstrochnyh i podstrochnyh indeksov v dokumentah, koto-
rye uzhe imeyut dvojnoj interval.
59
APK 00210-01 33 01-4
IMYA :
colrm - udalit' ukazannye kolonoki.
FORMAT:
colrm [nachstlb [konstlb]]
OPISANIE:
Komanda colrm udalyaet iz fajla ukazannye stolbcy.
Informaciya chitaetsya iz standartnogo fajla vvoda i
posle obrabotki zapisyvaetsya v standartnyj fajl vyvo-
da.
Esli pri vyzove ukazan tol'ko odin parametr, v kazhdoj
stroke budut udaleny vse pozicii, nachinaya s ukazannogo
stolbca. Esli ukazany dva parametra, budut udaleny vse
pozicii ot nachal'nogo stolbca do konechnogo stolbca.
Numeraciya stolbcov nachinaetsya so stolbca 1.
DOPOLNITELXNYE SSYLKI:
expand
ZAMECHANIYA
Simvoly tabulyacii rassmatrivayutsya kak odin simvol i
odin stolbec.
60
APK 00210-01 33 01-4
IMYA:
comm - vybrat' (otbrosit') odinakovye stroki fajlov.
FORMAT:
comm [-[123]] fajl1 fajl2
OPISANIE:
Komanda comm schityvaet fajly "fajl1" i "fajl2", koto-
rye dolzhny byt' otsortirovany v sootvetstvii s posle-
dovatel'nost'yu kodov KOI-8, i generiruet tri stolbca
vyvoda: stroki, vhodyashchie tol'ko v "fajl1", stroki,
vhodyashchie tol'ko v "fajl2" i stroki, vhodyashchie v oba
fajla. Klyuch "-" oznachaet ispol'zovanie standartnogo
fajla vvoda.
Flagi 1, 2 i 3 podavlyayut pechat' sootvetstvuyushchih
stolbcov. Takim obrazom, komanda "comm -12" pechataet
tol'ko stroki, obshchie dlya oboih fajlov. "Comm -23" pe-
chataet tol'ko stroki, kotorye vhodyat v pervyj fajl, no
ne vhodyat vo vtoroj, a komanda "comm -123" simvolizi-
ruet otsutstvie operacii.
DOPOLNITELXNYE SSYLKI:
cmp, diff, uniq
61
APK 00210-01 33 01-4
IMYA:
compact - kompressiya fajla
FORMAT:
compact [fajl ...]
OPISANIE:
Komanda compact kompressiruet perechislennye fajly.
Esli imena fajlov ne ukazany, kompressiruetsya informa-
ciya, postupayushchaya iz standartnogo fajla vvoda, rezul'-
tat vydaetsya v standartnyj fajl vyvoda. Kak tol'ko
schityvaetsya ocherednoj bajt, on nemedlenno kodiruetsya v
sootvetstvii s tekushchim kodom. |tot kod predstavlyaet
soboj optimal'nyj kod Haffmana dlya nabora chastot, vy-
chislennyh po uzhe vvedennoj informacii. Net neobhodi-
mosti v dobavlenii k szhatomu fajlu dereva dekodirova-
niya, poskol'ku shifrator (compact) i deshifrator
(uncompact) nachinayut rabotat' s odnogo i togo zhe sos-
toyaniya i ostayutsya sinhronnymi. Bolee togo, compact i
uncompact mogut rabotat' v kachestve fil'trov. V
chastnosti,
... | compact | uncompact | ...
Rabotaet kak ochen' medlennaya komanda, ne vypolnyayushchaya
nikakoj operacii.
Esli ukazan parametr "fajl", etot fajl szhimaetsya i re-
zul'tat pomeshchaetsya v fajl s imenem "fajl.C", "fajl"
udalyaetsya. Poslednie dva bajta szhatogo fajla (".C")
62
APK 00210-01 33 01-4
ukazyvayut, chto etot fajl szhat. |tot kod ispol'zuetsya
dlya predotvrashcheniya povtornoj kompressii.
Ozhidaemaya stepen' szhatiya zavisit ot tipa ishodnogo
fajla. Tipichnye znacheniya stepeni szhatiya sleduyushchie:
38% tekst;
43% ishodnaya programma na paskale;
36% ishodnaya programma na yazyke Si;
19% modul' zagruzki.
|ti znacheniya predstavlyayut soboj procent bajtov, na ko-
torye umen'shen fajl.
ZAMECHANIYA:
Poslednyaya chast' imeni fajla dolzhna soderzhat' menee
13-ti simvolov, chtoby ostavalos' mesto dlya suffiksa
".C". Katalogi ne mogut (i ne dolzhny) szhimat'sya.
DIAGNOSTIKA:
Komanda compact ne szhimaet katalogi. Vydayutsya takzhe
soobshcheniya o fajlah, kotorye ne mogut byt' otkryty, i
t.p.
FAJLY:
Sozdavaemye fajly imeyut suffiks ".C". Ishodnye fajly
udalyayutsya (esli oni ne byli zashchishcheny).
DOPOLNITELXNYE SSYLKI:
uncompact, ccat
63
APK 00210-01 33 01-4
IMYA:
convert - preobrazovatel' ob'ektnogo koda OS ES v
a.out
FORMAT:
convert [-e] fajl1 fajl2
OPISANIE:
Komanda convert sluzhit dlya preobrazovaniya ob'ektnogo
koda v "fajl1" iz formata OS ES v ob'ektnyj kod forma-
ta DEMOS "fajl2".
-e flag ustanavlivaet pri preobrazovanii perekodi-
rovku koda DKOI v KOI-8 dlya simvol'nyh imen slo-
varya vneshnih imen ESD. Simvoly imeni, krome
togo, preobrazuyutsya v strochnye bukvy.
DOPOLNITELXNYE SSYLKI:
a.out
ZAMECHANIYA:
1. Pravil'nee ispol'zovat' "fajl2" v kachestve o.tip
dlya obrabotki ego redaktorom svyazej.
2. Ne obrabatyvayutsya vneshnie fiktivnye sekcii DSECT
komandy assemblera DXD.
3. Ne obrabatyvayutsya slabye vneshnie imena operato-
rov assemblera WXTRN.
4. Ne obrabatyvaetsya ob'ektnaya karta SYM.
64
APK 00210-01 33 01-4
5. Ne podderzhivaetsya operacionnoe peremeshchenie.
65
APK 00210-01 33 01-4
IMYA:
cp - sozdat' kopiyu fajla.
FORMAT:
cp [-i] fajl1 fajl2
cp [-i] fajl ... spravochnik
OPISANIE:
"Fajl1" kopiruetsya v "fajl2". Esli "fajl2" sushchestvuet,
rezhim i vladelec sohranyayutsya, v protivnom sluchae is-
pol'zuetsya rezhim ishodnogo fajla.
Vtoraya forma dannoj komandy kopiruet odin ili neskol'-
ko ukazannyh fajlov v "spravochnik" s ishodnymi imena-
mi.
Komanda cp otvergaet zapros na kopirovanie fajla v sa-
mogo sebya.
Esli zadan parametr -i i kopirovanie proizvoditsya v
uzhe sushchestvuyushchij fajl, ot pol'zovatelya trebuetsya
podtverzhdenie. Esli pol'zovatel' podtverzhdaet zapros,
vydavaya otvet "y", komanda cp prodolzhaet rabotu. Pri
vydache lyubogo drugogo simvola predydushchee soderzhimoe
fajla sohranyaetsya.
DOPOLNITELXNYE SSYLKI:
cat, pr, mv
66
APK 00210-01 33 01-4
IMYA:
crypt - zashifrovat'/rasshifrovat'.
FORMAT:
crypt [klyuch]
OPISANIE:
Komanda crypt osushchestvlyaet chtenie iz standartnogo
fajla vvoda i zapis' v standartnyj fajl vyvoda. Argu-
ment "klyuch" predstavlyaet soboj klyuch, kotoryj zadaet
konkretnoe preobrazovanie informacii. Esli "klyuch" ne
zadan, komanda crypt trebuet vvod klyucha s terminala,
ne vydavaya simvolov na ekran terminala vo vremya vvoda
klyucha. Dve komandy crypt s odnim i tem zhe znacheniem
klyucha (klyuch1):
crypt klyuch1 <ishodnyj >zashifrovannyj
crypt klyuch1 <zashifrovannyj | pr
zashifruyut ishodnyj fajl i, rasshifrovav, raspechatayut
ishodnyj tekst.
Fajly, zashifrovannye s pomoshch'yu crypt, sovmestimy s
temi fajlami, s kotorymi rabotaet redaktor ed v rezhime
shifrovaniya.
Zashchita zashifrovannyh fajlov osnovana na treh faktorah:
1) lezhashchij v osnove metod dolzhen byt' trudnym dlya
razgadki;
67
APK 00210-01 33 01-4
2) pryamoj prosmotr prostranstva klyuchej dolzhen byt'
nevozmozhen;
3) obhodnye puti, pozvolyayushchie poluchit' klyuchi ili
ishodnyj tekst, dolzhny byt' minimizirovany.
Komanda crypt realizuet odnorotornuyu shifroval'nuyu ma-
shinu s 256-elementnym rotorom. Metody bor'by s takimi
mashinami izvestny, odnako ne ochen' shiroko. Bolee togo,
dlya rasshifrovki neobhodimo prodelat' dostatochno bol'-
shuyu rabotu.
Preobrazovanie klyucha vo vnutrennie ustanovki mashiny
umyshlenno sdelano slozhnym. Odnako, esli klyuchi ograni-
cheny, naprimer, tremya malymi bukvami, zashifrovannye
fajly mogut byt' prochitany s zatratami ne bolee pyati
minut mashinnogo vremeni.
Poskol'ku klyuch yavlyaetsya parametrom komandy crypt, on
yavlyaetsya potencial'no vidimym dlya pol'zovatelej, vy-
polnyayushchih komandu ps ili ee proizvodnuyu. Dlya umen'she-
niya etoj vozmozhnosti crypt razrushaet lyubuyu zapis' klyu-
cha srazu zhe posle vhoda. Nesomnenno, vybor klyuchej i ih
zashchishchennost' predstavlyayut soboj naibolee uyazvimoe
mesto.
FAJLY:
/dev/tty dlya napechatannogo klyucha
DOPOLNITELXNYE SSYLKI:
ed, makekey
68
APK 00210-01 33 01-4
IMYA:
csh - interpretator komandnogo yazyka s Si-podobnym
sintaksisom.
FORMAT:
csh [-cefinstvVxX] [parametr...]
OPISANIE:
Komanda csh predstavlyaet soboj interpretator komandno-
go yazyka CSHELL, kotoryj, v otlichie ot yazyka SHELL,
imeet bolee shirokij nabor vstroennyh komand, podderzhi-
vaet nekotoryj kontekst raboty i imeet Si-podobnyj
sintaksis.
Funkcionirovanie csh nachinaetsya s vypolneniya komandno-
go fajla ".cshrc" v registracionnom spravochnike pol'-
zovatelya. Esli csh ispol'zuetsya v kachestve interpreta-
tora osnovnogo komandnogo yazyka, pri registriracii v
sisteme vypolnyaetsya komandnyj fajl ".login" v tom zhe
spravochnike. Posle etogo interpretator nachinaet schity-
vat' komandy s terminala, vydavaya v kachestve podskazki
simvol "%". Pri zavershenii raboty vypolnyaetsya ko-
mandnyj fajl ".logout" v registracionnom spravochnike
pol'zovatelya.
LEKSICHESKAYA STRUKTURA:
Komandoj v yazyke CSHELL schitaetsya nabor parametrov.
Parametrom yavlyaetsya proizvol'naya posledovatel'nost'
simvolov, ne soderzhashchaya simvolov probela, tabulyacii i
69
APK 00210-01 33 01-4
novoj stroki. Pervyj parametr v stroke rassmatrivaetsya
kak imya komandy, kotoruyu neobhodimo vypolnit'.
Sushchestvuet nabor simvolov, kotorye imeyut special'noe
znachenie v yazyke CSHELL, i obrabatyvayutsya osobym obra-
zom. Takie simvoly v dal'nejshem budut nazyvat'sya meta-
simvolami. K ih chislu otnosyatsya "&", "|", ";", "<",
">", "(", ")", "*" i nekotorye drugie.
V neinteraktivnom rezhime simvol "#" ukazyvaet na nacha-
lo kommentariya. On teryaet svoe special'noe znachenie
pri ispol'zovanii lyubogo iz sushchestvuyushchih mehanizmov
ekranirovaniya.
KOMANDY:
Prostaya komanda predstavlyaet soboj posledovatel'nost'
slov, pervoe iz kotoryh - imya vypolnyaemoj komandy, a
ostal'nye peredayutsya v kachestve parametrov. Posledova-
tel'nost' prostyh komand, razdelennyh simvolami "|",
obrazuet kanal mezhprocessnoj svyazi (vyvod predydushchej
komandy yavlyaetsya vvodom sleduyushchej). Cepochki komand,
obrazuyushchih mezhprocessnye kanaly (konvejery), mogut
razdelyat'sya s pomoshch'yu simvola ";", pri etom oni vypol-
nyayutsya posledovatel'no. V fonovom rezhime, kogda posle-
dovatel'nost' komand zavershaetsya simvolom "&", csh
mozhet ne dozhidayas' okonchaniya translyacii perejti k vy-
polneniyu sleduyushchej komandy. V takom rezhime sushchestvuet
avtomaticheskaya zashchita ot signala ostanova; sledova-
tel'no, net neobhodimosti v ispol'zovanii komandy
70
APK 00210-01 33 01-4
"nohup".
Spisok komand, zaklyuchennyj v skobki (), rassmatrivaet-
sya kak prostaya komanda, kotoraya mozhet yavlyat'sya chast'yu
konvejera. Simvoly "||" i "&&", ispol'zuemye v ka-
chestve razdelitelej, ukazyvayut (kak i v yazyke Si), chto
vtoroj konvejer dolzhen zapuskat'sya tol'ko v sluchae za-
versheniya pervogo.
MEHANIZM PODSTANOVKI PREDSHESTVUYUSHCHIH KOMAND:
Csh zapominaet komandnye stroki, kotorye vvodil pol'-
zovatel' v processe raboty, i pozvolyaet osushchestvlyat'
ih povtornyj vvod.
Ukazatelem vypolneniya podstanovki komand yavlyaetsya
simvol "!". Podstanovka mozhet nachinat'sya v lyubom meste
vhodnogo potoka. Simvol "!" teryaet svoe special'noe
znachenie, esli on ekranirovan s pomoshch'yu simvola "
takzhe esli za nim sleduet probel, znak tabulyacii,
simvol novoj stroki, "=" ili "(". Podstanovka komand
proizvoditsya takzhe v tom sluchae, kogda vhodnaya stroka
nachinaetsya simvolom "^".
Komandy numeruyutsya posledovatel'no, nachinaya s 1. Koli-
chestvo zapominaemyh csh komandnyh strok opredelyaetsya
peremennoj history. Ssylki na predydushchie komandy iz
tekushchej komandy mogut byt' osushchestvleny sleduyushchim ob-
razom:
!N po nomeru komandy;
71
APK 00210-01 33 01-4
!-n na n komand ran'she otnositel'no tekushchej komandy;
!c po pervoj bukve komandy;
!?...?!
po stroke "...", soderzhashchejsya v nekotorom slove
komandy;
!! povtornoe vypolnenie poslednej komandy.
Dlya vybora iz komandy otdel'nyh parametrov, posle spe-
cifikacii komandy nuzhno ukazat' ":" i opredelitel'
trebuemyh parametrov. Slova vhodnoj stroki numeruyutsya,
nachinaya s 0: 0 - obychno imya komandy, 1 - pervyj para-
metr i t.d. Osnovnymi opredelitelyami yavlyayutsya:
0 imya komandy;
n n-yj parametr;
^ pervyj parametr;
$ poslednij parametr;
% slovo, kotoroe sootvetstvuet (neposredstvenno
predshestvuyushchemu) obrazcu ?...?;
h-y diapazon slov;
-y sootvetstvuet "0-y";27
* vybrat' vse parametry, nachinaya s pervogo ("%-$");
h* vybrat' vse parametry, nachinaya s n-go ("h-$");
72
APK 00210-01 33 01-4
h- to zhe, chto "h*", no ne vklyuchaya poslednij parametr
"$".
Simvol ":" mozhet byt' opushchen, esli opredelitel' nachi-
naetsya odnim iz simvolov "^", "$", "*", "-" ili "%".
Posle neobyazatel'nogo opredelitelya mogut ukazyvat'sya
modifikatory. Kazhdomu iz nih predshestvuet dvoetochie
":". Opredeleny sleduyushchie modifikatory:
g primenit' modifikaciyu vo vseh slovah;
h udalit' imya fajla, ostavlyaya imena spravochnikov,
vedushchih k nemu;
r raspechatat' novuyu komandu, no ne vypolnyat' ee;
q zaklyuchit' modificiruemoe slovo v kavychki, pre-
dotvrashchaya ego dal'nejshuyu modifikaciyu;
r udalit' rasshirenie imeni fajla, ukazannoe cherez
tochku ".";
s/l/r zamenit' l na r. V kachestve razdelitelya vmesto
"/" mozhet byt' ispol'zovan lyuboj simvol.V stro-
kah l i r razdelitel' dolzhen ekranirovat'sya
simvolom "
sya predydushchaya stroka libo iz l, libo iz stroki
kontekstual'nogo poiska s v "!?s?". Esli stroka
r pusta, to l udalyaetsya;
t udalit' imena vseh spravochnikov, vedushchih k
fajlu, ostavlyaya imya fajla;
73
APK 00210-01 33 01-4
x to zhe, chto i q, no razbit' na slova v mestah
nalichiya probelov, znakov tabulyacii i simvolov
novoj stroki;
& povtorit' predydushchuyu modifikaciyu.
Csh ppredostvlyaet udobnyj sposob modifikacii poslednej
stroki. Dlya etih celej ispol'zuetsya konstrukciya "^ob-
razec^zamena".
PSEVDONIMY:
S pomoshch'yu komand alias i unalias interpretator csh
sostavlyaet spisok psevdonimov, kotorye mogut ustanav-
livat'sya, otobrazhat'sya i modificirovat'sya. Posle pros-
motra komandnoj stroki ona razbivaetsya na otdel'nye
komandy, i pervoe slovo kazhdoj komandy proveryaetsya
(sleva napravo), chtoby vyyasnit', imeet li ono psevdo-
nim. Esli imeet, to tekst, kotoryj yavlyaetsya psevdoni-
mom dannoj komandy, schityvaetsya s pomoshch'yu mehanizma
history tak, kak esli by eta komanda byla predydushchej
vhodnoj strokoj. Poluchennye slova zamenyayut komandu i
spisok parametrov. |tot mehanizm pozvolyaet vvodit'
novyj sintaksis komand.
PODSTANOVKA PEREMENNYH:
Posle podstanovki psevdonimov i grammaticheskogo razbo-
ra vhodnoj stroki i pered vypolneniem kazhdoj komandy
proizvoditsya podstanovka peremennyh, oboznachaemaya sim-
volom "$".
74
APK 00210-01 33 01-4
Sushchestvuyut sleduyushchie konstrukcii:
$imya
${imya}
Podstavit' znachenie peremennoj. Figurnye skobki
otdelyayut "imya" ot simvolov, kotorye k nemu ne
otnosyatsya. Imena peremennyh mogut soderzhat' do
20 bukv i simvolov podcherkivaniya;
$imya[selektor]
${imya[selektor]}
Podstavit' znachenie slova, vybrannogo "selekto-
rom" iz mnozhestva znachenij peremennoj "imya";
$#imya
${#imya}
Podstavit' kolichestvo slov, hranyashchihsya v pere-
mennoj;
$0 Podstavit' imya standartnogo fajla vvoda. Esli
eto imya neizvestno, voznikaet oshibka;
$chislo
${chislo}
|kvivalentno "$argv [chislo]";
$* |kvivalentno "$argv [*]";
S pomoshch'yu modifikatora ":" ne mogut byt' proizvedeny
75
APK 00210-01 33 01-4
sleduyushchie podstanovki:
$?imya
${?imya}
Podstavit' "1", esli "imya" opredeleno, ili "0" -
esli ne opredeleno.
$?0 Podstavit' "1", esli standartnyj fajl vvoda op-
redelen, ili "0" - v protivnom sluchae.
$$ Podstavit' nomer processa csh.
PODSTANOVKA VYVODA KOMAND:
Pri podstanovke komandy, ee zaklyuchayut v obratnye
apostrofy `...`. |ta komanda vypolnyaetsya, a ee stan-
dartnyj vyvod razbivaetsya na otdel'nye slova v mestah
nalichiya probelov, znakov tabulyacii i simvolov novoj
stroki, prichem pustye slova otbrasyvayutsya, i etot
tekst zatem zamenyaet ishodnuyu stroku v "`". Vnutri
strok, zaklyuchennyh v kavychki "...", tol'ko simvol
novoj stroki vydelyaet novye slova.Probely i simvoly
tabulyacii sohranyayutsya.
Pri pomoshchi podstanovki vyvoda komandy mozhet byt' soz-
dana tol'ko chast' slova, dazhe esli komanda vydaet ce-
luyu stroku.
PODSTANOVKA IMEN FAJLOV:
Esli slovo soderzhit lyuboj iz simvolov "*", "?", "[",
76
APK 00210-01 33 01-4
"{" ili nachinaetsya s "^ ", to v nem mozhet byt' osu-
shchestvlena podstanovka imeni fajla. Pri etom dannoe
slovo yavlyaetsya obrazcom, kotoryj zamenyaetsya soot-
vetstvuyushchim spiskom fajlov, otsortirovannyh v alfavit-
nom poryadke. Esli v spiske imen fajlov ne najdeno ni
odnogo sootvetstviya zadannomu obrazcu, voznikaet oshib-
ka. Sleduyushchie simvoly imeyut special'noe znachenie:
* Sootvetstvuet lyuboj posledovatel'nosti simvolov,
v tom chisle pustoj;
? Sootvetstvuet lyubomu odinochnomu simvolu;
[...]
Sootvetstvuet lyubomu iz perechislennyh simvolov.
Para simvolov, razdelennaya znakom "-", soot-
vetstvuet lyubomu simvolu iz ukazannogo leksiches-
kogo promezhutka;
~ Registracionnyj spravochnik, yavlyayushchijsya znacheniem
peremennoj home;
~imya Registracionnyj spravochnik pol'zovatelya s imenem
"imya";
[a,b,...,n]
Sootvetstvuet lyubomu iz perechislennyh simvolov.
Dlya ukazaniya samih simvolov "[" i "]" v spiske
pered nimi dolzhen stavit'sya simvol "
a{b,c,d}e
77
APK 00210-01 33 01-4
Sootvetstvuet "abe ace ade". Ispol'zovanie probe-
lov ne dopuskaetsya.
Pri podbore imen fajlov simvol ".", nahodyashchijsya v na-
chale imeni fajla ili neposredstvenno posle "/", a
takzhe simvol "/" dolzhny byt' ukazany yavno i tochno na
svoih mestah.
VVOD/VYVOD
Dlya zadaniya fajlov vvoda/vyvoda ispol'zuyutsya sleduyushchie
konstrukcii:
<imya Ispol'zovat' fajl "imya" v kachestve standartnogo
fajla vvoda;
<<slovo
Schitat' vvod interpretatora do stroki, kotoraya
identichna ukazannomu "slovu". Poluchennyj vremen-
nyj fajl ispol'zovat' v kachestve standartnogo
fajla vvoda;
>imya
>!imya
>&imya
>&!imya
Ispol'zovat' fajl "imya" v kachestve standartnogo
fajla vyvoda. Soderzhimoe fajla usekaetsya do nu-
levoj dliny. Esli opredelena peremennaya
noclobber, fajl ne dolzhen sushchestvovat', inache
78
APK 00210-01 33 01-4
voznikaet oshibka. Dlya predotvrashcheniya nepredname-
rennogo razrusheniya fajlov ispol'zuyutsya konstruk-
cii s "!". Konstrukcii, ispol'zuyushchie "&", nap-
ravlyayut v standartnyj fajl vyvoda takzhe diagnos-
ticheskie soobshcheniya;
>>imya
>>&imya
>>!imya
>>&!imya
Ispol'zovat' fajl "imya" v kachestve standartnogo
fajla vyvoda; vyhodnaya informaciya dopisyvaetsya k
soderzhimomu fajla "imya". Esli opredelena pere-
mennaya noclobber, a fajl ne sushchestvuet, to is-
pol'zovanie konstrukcij, ne soderzhashchih "!",
privodit k vozniknoveniyu oshibki.
V fonovom rezhime standartnym fajlom vyvoda po umolcha-
niyu yavlyaetsya pustoj fajl "/dev/null". Diagnostika
mozhet byt' vyvedena po kanalu mezhprocessnoj svyazi. Dlya
etogo ispol'zuetsya konstrukciya "|&".
VYRAZHENIYA:
Nekotorye iz vstroennyh komand mogut soderzhat' vyrazhe-
niya, v kotoryh imeyutsya operacii, analogichnye operaciyam
v yazyke Si, s takim zhe prioritetom. |ti vyrazheniya
mogut poyavlyat'sya v komandah @, exit, if i while. Raz-
resheny sleduyushchie operacii: "||", "&&", "|", "~", "&",
79
APK 00210-01 33 01-4
"==", "!=", "<=", ">=", "<", ">", "<<", ">>", "+",
"-", "*", "/", "%", "!", "^", "(", ")".
Starshinstvo operacij v etom ryadu vozrastaet sleva nap-
ravo; vnutri sleduyushchih grupp operacii imeyut odinakovyj
prioritet:
== !=
<= >= < >
<< >>
+ -
* / %
V operaciyah sravneniya "==", "!=", operandami yavlyayutsya
stroki; ostal'nye operiruyut s chislami. Logicheskimi
znacheniyami yavlyayutsya: 0 - "lozh'", 1 (ili lyuboe chislo,
otlichnoe ot nulya) - "istina". Vse znaki operacij
dolzhny otdelyat'sya ot operandov probelami. V odnom slo-
ve ne dolzhny vstrechat'sya dva komponenta vyrazhenij, za
isklyucheniem sluchaev ispol'zovaniya sleduyushchih znakov
operacij: "&", "|", "<", ">", "(", ")".
Imeyushchiesya v csh operacii prisvaivaniya analogichny ope-
raciyam prisvaivaniya yazyka Si. K nim otnosyatsya: "=",
"+=", "-=", "*=", "/=", "%=".
Postfiksnye operacii "++" i "--" sootvetstvenno inkre-
mentiruyut i dekrementiruyut "imya" (naprimer, "@i++").
V kachestve prostyh operandov v vyrazheniyah mogut is-
pol'zovat'sya komandy, zaklyuchennye v figurnye skobki
80
APK 00210-01 33 01-4
"{...}".
V csh imeyutsya operacii oprosa svojstv fajla vida "-l
imya", gde l mozhet prinimat' sleduyushchie znacheniya:
r razreshenie chteniya;
w razreshenie zapisi;
h razreshenie vypolneniya;
e sushchestvovanie;
o vladelec;
z nulevoj razmer;
f nezashifrovannyj fajl;
d spravochnik.
V ukazannom fajle osushchestvlyayutsya podstanovki peremen-
nyh i imen fajlov. Esli fajl obladaet trebuemym
svojstvom, to vozvrashchaetsya znachenie 1 (istina), inache
- 0 (lozh').
KOMANDY UPRAVLENIYA:
K komandam upravleniya otnosyatsya sleduyushchie konstrukcii:
foreach imya (slovo ...)
spisok_komand
end
Peremennoj "imya" posledovatel'no prisvaivayutsya
znacheniya "slovo ..." i vypolnyaetsya "spisok_ko-
mand".
switch( stroka )
81
APK 00210-01 33 01-4
case slovo:
...
breaksw
...
default:
...
breaksw
endsw
"Stroka" posledovatel'no sravnivaetsya so vsemi
"slovami". Esli sootvetstvie ne obnaruzheno, vy-
polnenie prodolzhaetsya posle default. Komanda
breaksw privodit k tomu, chto vypolnenie prodol-
zhaetsya posle endsw.
if( vyr1 ) then spisok_komand1
else if( vyr2 ) then spisok_komand2
else spisok_komand3
endif
Esli znachenie pervogo vyrazheniya istinno (otlichno
ot nulya), vypolnyaetsya "spisok_komand1". V pro-
tivnom sluchae proveryaetsya "vyrazhenie2": esli ono
istinno, vypolnyaetsya "spisok_komand2" i t.d.
while( vyrazhenie )
...
end
Cikl vypolnyaetsya, poka istinno znachenie "vyrazhe-
82
APK 00210-01 33 01-4
niya".
V operatorah upravleniya csh klyuchevoe slovo (if, else i
dr.) dolzhno byt' pervym slovo v stroke.
VSTROENNYE KOMANDY:
alias
alias imya
alias imya spisok_slov
Pervaya forma raspechatyvaet vse psevdonimy. Vto-
raya forma raspechatyvaet psevdonim ukazannogo
"imeni". Poslednyaya forma opredelyaet "spi-
sok_slov" kak psevdonim "imeni". V "spiske_slov"
osushchestvlyaetsya podstanovka komand i imen fajlov.
V kachestve "imen" nel'zya ispol'zovat' "alias" i
"unalias".
alloc Vydaet razmer ispol'zuemoj dinamicheskoj pamyati,
vklyuchaya ispol'zuemuyu i svobodnuyu pamyat', a takzhe
adres poslednej yachejki pamyati.
break Vyzyvaet vozobnovlenie vypolneniya posle end bli-
zhajshej vneshnej konstrukcii foreach ili while.
Esli v odnoj stroke ukazyvaetsya neskol'ko komand
break, razdelennyh tochkoj s zapyatoj, to perehod
osushchestvlyaetsya cherez stol'ko zhe urovnej.
breaksw
Vyzyvaet vyhod iz komandy switch, vozobnovlyaya
83
APK 00210-01 33 01-4
vypolnenie posle endsw.
case metka:
"Metka" - odin iz variantov operatora switch.
cd
cd imya
chdir
chdir imya
zamenyaet tekushchij spravochnik na spravochnik "imya".
Esli parametr otsutstvuet, to po umolchaniyu pri-
nimaetsya registracionnyj spravochnik.
continue
Prodolzhaet vypolnenie blizhajshego vneshnego while
ili foreach. Ostal'nye komandy tekushchej stroki
vypolnyayutsya.
default:
Metka, oboznachayushchaya variant po umolchaniyu v ope-
ratore switch.Dolzhna raspolagat'sya posle vseh
metok case.
echo spisok_slov
Ukazannye slova zapisyvayutsya v standartnyj fajl
vyvoda. Simvol " na novuyu stroku.
else
end
endif
84
APK 00210-01 33 01-4
endsw
Ispol'zuyutsya v operatorah foreach, if, switch i
while.
ehes komanda
"Komanda" zapuskaetsya vmesto csh. Rabota csh za-
vershaetsya.
exit
exit( vyr )
Proizvoditsya vyhod iz csh libo so znacheniem pe-
remennoj status (pervaya forma), libo so znacheni-
em ukazannogo vyrazheniya "vyr" (vtoraya forma);
glob spisok_slov
|ta komanda analogichna komande echo, za isklyuche-
niem togo, chto pri vyvode slova razdelyayutsya pro-
belami, tak kak simvol "
goto slovo
Komanda bezuslovnogo perehoda na metku.
Vypolnenie prodolzhaetsya so stroki, idushchej posle
ukazannoj metki. Metka dolzhna zavershat'sya simvo-
lom ":".
hashstat
Raspechatyvaet statistiku, opredelyayushchuyu, naskol'-
ko effektivno vnutrennyaya tablica heshirovaniya
razmeshchaet komandy.
85
APK 00210-01 33 01-4
history
Otobrazhaet spisok predshestvuyushchih komand.
if (vyr) komanda
Esli znachenie ukazannogo vyrazheniya istinno, vy-
polnyaetsya "komanda". Komanda dolzhna byt' odna.
Ispol'zovanie konvejerov ne dopuskaetsya.
login
login imya
Po komande login zavershaetsya rabota csh i inici-
aliziruetsya programma init dlya dannogo displeya.
Komanda mozhet ispol'zovat'sya bez parametra "imya"
i s nim. Vo vtorom sluchae srazu zhe budet zapro-
shen vhodnoj parol' pol'zovatelya.
logout
Preryvaet rabotu csh. Esli opredelena peremennaya
ignoreeof, to signal konca fajla <CTRL/D> igno-
riruetsya.
nice
nice +chislo
nice komanda
nice +chislo komanda
Pervaya forma ustanavlivaet prioritet csh ravnym
4. Vtoraya forma ustanavlivaet prioritet ravnym
ukazannomu chislu. Poslednie formy vypolnyayut ko-
mandu s prioritetom 4 i "chislo" sootvetstvenno.
86
APK 00210-01 33 01-4
Ispol'zuya konstrukciyu "nice -chislo ...", super-
pol'zovatel' mozhet ustanovit' otricatel'nyj pri-
oritet. Komanda vypolnyaetsya v podprocesse
csh.Ispol'zovanie konvejerov ne dopuskaetsya.
nohup
nohup komanda
Komanda predotvrashchaet reakciyu csh na signaly
preryvaniya. Pri ispol'zovanii bez parametrov
dejstvie nohup rasprostranyaetsya na vse stroki
komandogo fajla, ukazannye za nej. Vo vtoroj
forme signaly preryvaniya ignoriruyutsya tol'ko pri
vypolnenii ukazannoj "komandy". Dlya vseh fonovyh
processov, nohup vypolnyaetsya avtomaticheski.
onintr
onintr -
onintr metka
Upravlyaet reakciej csh na preryvaniya. Pervaya
forma vosstanavlivaet standartnuyu reakciyu csh na
preryvaniya, kotoraya zaklyuchaetsya v zavershenii vy-
polneniya komandnyh fajlov csh ili vozvrate v in-
teraktivnyj rezhim. Vtoraya forma vyzyvaet ignori-
rovanie lyubyh signalov preryvaniya. Poslednyaya
forma pri poluchenii signala preryvaniya vyzyvaet
vypolnenie komandy "goto metka".
rehash
87
APK 00210-01 33 01-4
Sozdaet hesh-tablicu komand, soderzhashchihsya v spra-
vochnikah, kotorye ukazany v peremennoj path.
repeat schetchik komanda
Povtoryaet vypolnenie "komandy" "schetchik" raz.
Standartnye fajly vvoda/vyvoda zadayutsya tol'ko
odin raz.
set
set imya
set imya=slovo
set imya[indeks]=slovo
set imya=(spisok_slov)
Pervaya forma dannoj komandy vyvodit znacheniya
vseh peremennyh csh. Peremennye, kotorye imeyut
neskol'ko znachenij, vyvodyatsya v vide spiska,
zaklyuchennogo v skobki. Vtoraya forma prisvaivaet
ukazannomu "imeni" stroku nulevoj dliny. Tret'ya
forma prisvaivaet "imeni" znachenie "slova". CHet-
vertaya forma prisvaivaet komponentu imeni s no-
merom "indeks" znachenie "slova". Poslednyaya forma
prisvaivaet "imeni" znacheniya iz "spisoka_slov".
setenv
setenv imya znachenie
Pervaya forma vyvodit znacheniya peremennyh sredy
processa, vtoraya ih ustanavlivaet.
shift
88
APK 00210-01 33 01-4
shift peremennaya
CHleny peremennoj argv sdvigayutsya vlevo, pri etom
argv[1] (levyj element spiska) otbrasyvaetsya.
Esli element spiska ne opredelen ili imeet menee
odnogo znacheniya, to voznikaet oshibka. Vtoraya
forma komandy vypolnyaet eti zhe dejstviya nad uka-
zannoj "peremennoj".
source imya
Csh schityvaet komandy iz fajla "imya". Komanda
source mozhet byt' vlozhennoj.Esli glubina vlozhe-
niya slishkom velika, to mozhet ne hvatit' deskrip-
torov fajlov. Oshibka v komande source na lyubom
urovne preryvaet vypolnenie ostal'nyh vlozhennyh
komand source. Vvod komand, proizvedennyj v pro-
cesse vypolneniya komandy source ne fiksiruetsya v
spiske predshestvuyushchih komand.
time
time komanda
Pri otsutstvii parametrov soobshchaet vremya, zatra-
chennoe interpretatorom csh i porozhdennymi pro-
cessami. Esli parametr zadan, vydaetsya vremya,
zatrachennoe ukazannoj "komandoj".
umask
umask znachenie
Maska dostupa k fajlu soobshchaetsya (pervaya forma)
89
APK 00210-01 33 01-4
ili ustanavlivaetsya ravnoj ukazannomu znacheniyu
(vtoraya forma). Znachenie maski ukazyvaetsya v
vos'merichnom kode. Samymi rasprostranennymi zna-
cheniyami maski yavlyayutsya 022 (po umolchaniyu), koto-
roe zadaet lyuboj dostup dlya pol'zovatelej svoej
gruppy i dostup dlya chteniya i vypolneniya drugim
pol'zovatelyam, i 002, opredelyayushchee lyuboj dostup,
za isklyucheniem zapisi, dlya pol'zovatelej svoej
gruppy i vseh prochih;
unalias obrazec
Vse psevdonimy, imena kotoryh sootvetstvuyut uka-
zannomu obrazcu, otbrasyvayutsya. Sledovatel'no,
komanda "unalias *" udalyaet vse psevdonimy. Esli
psevdonimy ne udalilis', eto ne schitaetsya oshib-
koj.Ispol'zovanie komandy bez parametrov privo-
dit k vozniknoveniyu oshibki.
unhash
Zapreshchaet ispol'zovanie hesh-tablicy dlya uskore-
niya nahozhdeniya vypolnyaemyh programm.
unset obrazec
Vse peremennye, imena kotoryh sootvetstvuyut uka-
zannomu obrazcu, udalyayutsya. Takim obrazom, ko-
manda "unset *" udalyaet vse peremennye, oprede-
lennye komandoj set. Popytka udalit' neoprede-
lennuyu peremennuyu ne privodit k vozniknoveniyu
oshibki.
90
APK 00210-01 33 01-4
wait Proishodit ozhidanie vseh porozhdennyh processov.
V interaktivnom rezhime signal preryvaniya mozhet
prervat' i vypolnenie komandy wait.Pri etom csh
pechataet imena i nomera vseh nezavershennyh pro-
cessov.
@
@imya=vyrazhenie
@imya[indeks]=vyrazhenie
Pervaya forma raspechatyvaet znacheniya vseh pere-
mennyh csh. Vtoraya forma prisvaivaet parametru
"imya" znachenie "vyrazheniya". Esli chast' vyrazheniya
soderzhit simvoly "<", ">", "&" ili "|", to ona
dolzhna byt' zaklyuchena v kruglye skobki (...).
Tret'ya forma prisvaivaet komponentu"imya" s nome-
rom "indeks" znachenie "vyrazheniya". "Imya" i ego
komponent s nomerom "indeks" dolzhny sushchestvo-
vat'.
VNUTRENNIE PEREMENNYE:
argv Opredelyaet znacheniya parametrov csh. K nej prime-
nimy podstanovki pozicionnyh parametrov (napri-
mer, "$1" zamenyaetsya na "$argv[1]").
child Nomer processa.Vyvoditsya pri zapuske parallel'-
nogo processa. Po zavershenii processa znachenie
peremennoj sbrasyvaetsya (unset).
echo Ustanavlivaetsya, esli v komandnoj stroke ukazy-
91
APK 00210-01 33 01-4
vaetsya flag "-h". Vyzyvaet pechat' kazhdoj komandy
i ee parametrov pered vypolneniem. Vse rasshire-
niya vypolnyayutsya pered vyvodom.
history
Opredelyaet razmer spiska predshestvuyushchih komand.
Slishkom bol'shoe znachenie peremennoj mozhet pri-
vesti k nehvatke pamyati. Optimal'noe chislo - 22
stroki.
home Opredelyaet imya registracionnogo spravochnika
pol'zovatelya.
ignoreeof
Predotvrashchaet sluchajnoe zavershenie csh pri pri-
eme signala "konec fajla" <CTRL/D>.
mail Soderzhit imena fajlov, kotorye proveryayutsya in-
terpretatorom csh na nalichie pochty posle zaver-
sheniya kazhdoj komandy.
noclobber
Ustanavlivaet zashchitu fajlov ot sluchajnogo razru-
sheniya i obespechivaet sushchestvovanie fajlov vyvoda
pri ispol'zovanii konstrukcii ">>".
noglob
Zapreshchaet rasshirenie imen fajlov.
nonomatch
Esli rasshirenie imen fajlov ne sootvetstvuet ni
92
APK 00210-01 33 01-4
odnomu iz sushchestvuyushchih fajlov, to pri ustanovke
dannoj peremennoj vozvrashchaetsya ishodnyj obrazec.
Odnako, esli ishodnyj obrazec neveren (naprimer,
"esno ["), to voznikaet oshibka.
path Opredelyaet spisok imen spravochnikov dlya poiska
vypolnyaemyh komand.
prompt
Opredelyaet stroku-priglashenie interpretatora dlya
vvoda komand. Esli v etoj stroke prisutstvuet
ukazatel' "!", kotoromu ne predshestvuet simvol
"
Standartnymi znacheniyami yavlyayutsya "%" - dlya obych-
nogo pol'zovatelya i "#" - dlya superpol'zovatelya.
shell Esli komandnyj fajl yavlyaetsya vypolnyaemym (imeet-
sya bit "x") i nachinaetsya s simvola "#", to on
vypolnyaetsya interpretatorom csh.Esli simvol "#"
otsutstvuet - interpretatorom sh. Peremennaya
shell opredelyaet fajl, kotoryj dolzhen vypolnyat'
interpretator csh.
status
Opredelyaet kod zaversheniya poslednej komandy (0 -
pri uspeshnom vypolnenii komandy, 1 - pri neus-
peshnom).
time Hronometriruet komandy, esli ih dejstvie prodol-
zhalos' bolee ukazannogo vremeni.
93
APK 00210-01 33 01-4
verbose
Ustanavlivaetsya flagom "-v" i vyzyvaet raspechat-
ku kazhdoj komandnoj stroki pered ee vypolneniem.
FLAGI CSH:
-c Schitat' komandu iz edinstvennogo parametra, uka-
zannogo srazu posle "-c". Vse ostal'nye
parametry razmeshchayutsya v peremennoj argv;
-e Prekratit' rabotu csh, esli lyubaya vyzvannaya ko-
manda vypolnena neuspeshno ili esli kod zavershe-
niya komandy ne raven nulyu;
-f Zapretit' chtenie fajla ".cshrc" dlya obespecheniya
bolee bystrogo zapuska interpretatora csh;
-i Ustanavlivaet interaktivnyj rezhim raboty in-
terpretatora;
-n Osushchestvlyaet tol'ko sintaksicheskuyu proverku
komand;
-s Schityvat' vhodnuyu informaciyu iz standartnogo
fajla vvoda;
-t Schityvat' i vypolnyat' tol'ko odnu komandnuyu
stroku. |ta stroka mozhet soderzhat' v konce
simvol prodolzheniya stroki "
-v Vyzyvaet ustanovku peremennoj verbose, v rezul'-
tate chego vvodimye komandy raspechatyvayutsya posle
94
APK 00210-01 33 01-4
podstanovki predshestvuyushchih komand;
-V Vyzyvaet ustanovku peremennoj verbose pered vy-
polneniem fajla ".cshrc";
-x Vyzyvaet raspechatku komand pered ih vypolneniem;
-X Ustanavlivaet flag "-x" pri interpretacii fajla
".cshrc".
OBRABOTKA SIGNALOV:
Interpretator komand obychno ignoriruet signaly vyhoda
(quit). Komandy, vypolnyaemye v fonovom rezhime, obychno
ignoriruyut signaly preryvaniya (interrupt) i vyhoda. V
obychnom rezhime eti signaly imeyut znacheniya, nasleduemye
ot predydushchego processa. Reakciya csh na preryvaniya
mozhet ustanavlivat'sya komandoj onintr. Interpretatory,
ustanavlivaemye neposredstvenno pri registracii pol'-
zovatelya v sisteme, vosprinimayut signal zaversheniya
(terminate); v ostal'nyh sluchayah sostoyanie signala
preryvaniya peredaetsya iz tekushchego processa v porozhda-
emyj. Vo vremya schityvaniya fajla ".logout", signaly
preryvaniya ne vosprinimayutsya.
FAJLY:
^/.cshrc schityvaetsya csh v nachale
vypolneniya.
^/.login schityvaetsya csh posle ".cshrc"
pri registracii.
^/.logout schityvaetsya csh pri vyhode.
95
APK 00210-01 33 01-4
/bin/sh standartnyj shell dlya komandnyh
fajlov, kotorye nachinayutsya ne s
"#".
/tmp/sh* vremennyj fajl dlya "<<".
/dev/null istochnik dlya pustogo fajla.
/etc/passwd registracionnyj spravochnik dlya
"^imya".
OGRANICHENIYA:
Slova ne mogut byt' dlinee, chem 512 simvolov. Koli-
chestvo simvolov v parametrah zavisit ot sistemy.
Predel sostavlyaet ot 512 do 5120 simvolov. Kolichestvo
parametrov komandy, vklyuchayushchih rasshireniya imen fajlov,
ogranicheno 1/6-oj chisla simvolov, razreshennyh v spiske
parametrov. Pri podstanovke komand kolichestvo podstav-
lyaemyh simvolov ne dolzhno prevyshat' chisla, ukazannogo
v spiske parametrov. Dlya predotvrashcheniya zaciklivaniya
csh ogranichivaet kolichestvo podstanovok psevdonimov v
odnoj stroke do 20-ti.
DOPOLNITELXNYE SSYLKI:
sh, environ.
ZAMECHANIYA:
Komandy upravleniya dolzhny podvergat'sya grammaticheskomu
razboru, a ne raspoznavat'sya v kachestve vstroennyh
komand. |to pozvolilo by razmeshchat' ih v lyubom meste,
ob'edinyat' s pomoshch'yu simvola "|", a takzhe ispol'zovat'
s metaoboznacheniyami "&" i ";".
96
APK 00210-01 33 01-4
Komandy, soderzhashchiesya vnutri ciklov s podskazkoj "?",
ne pomeshchayutsya v spisok predshestvuyushchih komand.
Dolzhna sushchestvovat' vozmozhnost' ispol'zovaniya modifi-
katorov ":" pri vyvode podstanovok komand. V makrovy-
zovah "$" dolzhno dopuskat'sya bolee odnogo modifikatora
":".
Nekotorye komandy ne dolzhny izmenyat' znacheniya peremen-
noj status, inache ona budet tak chasto menyat'sya, chto
mozhet okazat'sya pochti bespoleznoj. Ustanovka bita 0200
v peremennoj status pri nenormal'nom zavershenii svide-
tel'stvuet ob oshibke.
CHtoby sohranit' vozmozhnost' vosstanovleniya posle ne-
udachnogo vypolneniya komand ehes, novaya komanda nasle-
duet neskol'ko otkrytyh fajlov, otlichnyh ot stan-
dartnyh fajlov vvoda, vyvoda i diagnosticheskih soobshche-
nij. Esli fajly vvoda/vyvoda zadany i novaya komanda ne
zakryvaet ih, to nekotorye fajly naprasno ostayutsya
otkrytymi.
97
APK 00210-01 33 01-4
IMYA:
ctags - postroenie fajla ssylok dlya programm na Si
FORMAT:
ctags [-auw] fajl ...
OPISANIE:
Komanda ctags sozdaet tablicu ssylok (fajl s imenem
tags) dlya programm na yazyke Si, zapisannyh v ukazannyh
fajlah. Fajl ssylok soderzhit ukazaniya o mestonahozhde-
nii opredelennyh ob'ektov (v dannom sluchae - funkcij)
v gruppe fajlov. Kazhdaya stroka fajla ssylok soderzhit:
imya funkcii, imya fajla (v kotorom ona opredelena), re-
gulyarnoe vyrazhenie, ispol'zuemoe dlya poiska opredele-
niya funkcii. |ti dannye privodyatsya v otdel'nyh polyah
stroki i razdelyayutsya probelami ili simvolami tabulya-
cii.
V komandnoj stroke mogut ukazyvat'sya sleduyushchie klyuchi:
-a Privodit k tomu, chto rezul'tat dopisyvaetsya v
fajl tags;
-x V etom rezhime ctags vydaet dlya kazhdoj funkcii ee
imya, nomer stroki v kotoroj ona opredelena, imya
fajla i soderzhimoe stroki s opredeleniem dannoj
funkcii. Rezul'tat vydaetsya v standartnyj fajl
vyvoda;
-v Poluchenie spiska imen funkcij s ukazaniem stra-
nic na kotoryh oni opredeleny (predpolagaetsya,
98
APK 00210-01 33 01-4
chto stranica soderzhit 64 stroki);
-u Vyzyvaet obnovlenie priznakov dlya ukazannyh
fajlov, t.e. vse ssylki na nih udalyayutsya, i k
fajlu dobavlyayutsya novye znacheniya. Podrazumevaet-
sya zadanie klyucha "-a";
-w Podavlyaet predupreditel'nuyu diagnostiku.
Imya golovnoj programmy (main) obrabatyvaetsya osobym
obrazom. Vmesto imeni funkcii sozdaetsya nekotoroe us-
lovnoe imya, kotoroe formiruetsya putem dobavleniya "M" k
imeni fajla i udaleniya suffiksa ".c", esli on imeetsya,
a takzhe udaleniya pervyh komponentov polnogo imeni. |to
pozvolyaet ispol'zovat' ctags v katalogah s bolee, chem
odnoj programmoj.
FAJLY:
tags vyhodnoj fajl ssylok.
99
APK 00210-01 33 01-4
IMYA:
date - pechat' daty.
FORMAT :
date
OPISANIE:
Vydaetsya tekushchaya data i vremya v vide ggmmddchchmm. Pole
"gg" zadaet poslednie dve cifry goda, "mm" - mesyac,
"dd" - den', "chch" - chas (po 24-chasovoj sisteme), vto-
roe "mm" zadaet minuty.
FAJLY
DOPOLNITELXNYE SSYLKI:
utmp
100
APK 00210-01 33 01-4
IMYA:
dc - nastol'nyj kal'kulyator.
FORMAT:
dc [fajl]
OPISANIE:
Predstavlyaet soboj paket dlya vypolneniya arifmeticheskih
operacij s proizvol'noj tochnost'yu. Obychno on operiruet
s desyatichnymi celymi chislami, odnako mozhno zadavat'
vhodnoe i vyhodnoe osnovaniya sistemy schisleniya i koli-
chestvo obrabatyvaemyh drobnyh cifr. S tochki zreniya ob-
shchej struktury dc predstavlyaet soboj stekovyj kal'kulya-
tor (s ispol'zovaniem obratnoj pol'skoj zapisi). Esli
zadan parametr, vvod osushchestvlyaetsya iz ukazannogo
fajla (do teh por, poka on ne zakonchitsya), a zatem -
iz standartnogo fajla vvoda. Raspoznayutsya sleduyushchie
konstrukcii:
chislo znachenie chisla pomeshchaetsya v stek. CHislo
predstavlyaet soboj nepreryvnuyu stroku cifr 0-9.
Emu mozhet predshestvovat' simvol podcherkivaniya
"_", kotoryj sluzhit dlya vvoda otricatel'nyh
chisel. CHisla mogut soderzhat' desyatichnuyu tochku;
+ - / * % ^
Dva verhnih znacheniya steka skladyvayutsya (+), vy-
chitayutsya (-), umnozhayutsya (*), delyatsya (/), opre-
delyaetsya ostatok (%) ili vozvodyatsya v stepen'
(^). Dva etih znacheniya vytalkivayutsya iz steka;
101
APK 00210-01 33 01-4
na ih mesto v steke pomeshchaetsya rezul'tat. Drob-
naya chast' v pokazatele steka ignoriruetsya;
sx Vershina steka izvlekaetsya i zapominaetsya v re-
gistre s imenem "x", gde v kachestve "x" mozhet
ispol'zovat'sya lyuboj simvol. Esli bukva S zag-
lavnaya, "x" rassmatrivaetsya kak stek, i v nego
pomeshchaetsya dannoe znachenie;
lx Znachenie registra "x" pomeshchaetsya v stek. Soder-
zhimoe registra "x" ne izmenyaetsya. Nachal'nye zna-
cheniya vseh registrov nulevye. Esli bukva L zag-
lavnaya, registr "x" rassmatrivaetsya kak stek, i
ego verhnee znachenie pomeshchaetsya v osnovnoj stek;
d Verhnee znachenie steka udvaivaetsya;
p Verhnee znachenie steka raspechatyvaetsya. Verhnee
znachenie ostaetsya neizmennym. "P" rassmatrivaet
vershinu steka kak stroku simvolov KOI-8, udalyaet
i raspechatyvaet etu stroku;
f Raspechatyvayutsya vse znacheniya, nahodyashchiesya v ste-
ke i v registrah;
q Proizvoditsya vyhod iz programmy. Pri vypolnenii
stroki uroven' rekursii umen'shaetsya na dva. Esli
bukva Q zaglavnaya, iz steka izvlekaetsya verhnee
znachenie i uroven' vypolneniya stroki Izmenyaetsya
na eto znachenie;
102
APK 00210-01 33 01-4
x Rassmatrivaet verhnij element steka kak stroku
simvolov i vypolnyaet ee kak stroku komand dc;
X Zamenyaet chislo v vershine steka na ego masshtabnyj
mnozhitel';
[...] Pomeshchaet stroku simvolov KOI-8 v skobkah v ver-
shinu steka;
<x >x =x
Verhnie dva elementa steka izvlekayutsya i sravni-
vayutsya. Esli oni udovletvoryayut ukazannomu otno-
sheniyu, vypolnyaetsya registr "x";
v Zamenyaet verhnij element steka ego kvadratnym
kornem. Sushchestvuyushchaya drobnaya chast' parametra
uchityvaetsya, inache masshtabnyj mnozhitel' ignori-
ruetsya;
! Ostal'naya chast' stroki rassmatrivaetsya kak ko-
manda sistemy DEMOS;
c Iz steka izvlekayutsya vse znacheniya;
i Verhnee znachenie steka izvlekaetsya i ispol'zuet-
sya v kachestve osnovaniya chisel dlya posleduyushchego
vvoda. Zaglavnoe I pomeshchaet v vershinu steka
vhodnoe osnovanie;
o Verhnee znachenie steka izvlekaetsya i ispol'zuet-
sya v kachestve osnovaniya chisel dlya posleduyushchego
vyvoda. Zaglavnoe O pomeshchaet v vershinu steka vy-
103
APK 00210-01 33 01-4
hodnoe osnovanie;
k Izvlekaetsya verhnee znachenie steka, kotoroe is-
pol'zuetsya v kachestve neotricatel'nogo masshtab-
nogo mnozhitelya: sootvetstvuyushchee kolichestvo pozi-
cij pechataetsya pri vyvode i obrabatyvaetsya pri
umnozhenii, delenii i vozvedenii v stepen'. Vza-
imovliyanie masshtabnogo mnozhitelya, vhodnogo osno-
vaniya i vyhodnogo osnovaniya budut imet' smysl,
esli vse oni izmenyayutsya odnovremenno;
z Uroven' steka pomeshchaetsya v stek. Zaglavnoe Z za-
menyaet chislo v vershine steka ego dlinoj;
? Iz istochnika vvoda (obychno terminal) vvoditsya i
vypolnyaetsya vhodnaya stroka;
; : Ispol'zuetsya komandoj bc dlya operacij s massiva-
mi.
DOPOLNITELXNYE SSYLKI:
bc - preprocessor dlya dc, obespechivayushchij infiksnoe
predstavlenie i napominayushchij yazyk Si, sintaksis koto-
rogo realizuet funkcii i udobnye struktury upravleniya
dlya programm.
Imeetsya otdel'noe opisanie dc.
DIAGNOSTIKA:
"x is unimplemented" ("x ne pomeshchaetsya"), gde x -
vos'merichnoe chislo.
104
APK 00210-01 33 01-4
"stack empty" ("stek pust"), esli v steke nedostatochno
elementov dlya vypolneniya trebuemyh funkcij.
"out of space" ("ne hvataet mesta"), kogda ischerpan
spisok svobodnogo prostranstva (slishkom mnogo cifr).
"out of headers" ("ne hvataet zagolovkov"), kogda od-
novremenno obrabatyvaetsya slishkom mnogo chisel.
"out of pushdown" ("ischerpan stek"), esli v steke
slishkom mnogo elementov.
"Nesting Depth" ("glubina vlozheniya"), esli slishkom
mnogo urovnej vlozhennogo vypolneniya.
105
APK 00210-01 33 01-4
IMYA:
dcon - otladchik
FORMAT:
dcon fajl [ imya spiska ]
OPISANIE:
Dcon yavlyaetsya otladchikom DEMOS. Komanda pozvolyaet kak
proveryat' soderzhimoe fajlov, tak i dinamicheski testi-
rovat' programmu. Obychno, kogda ispol'zuetsya operand
"fajl", proveryaetsya fajl ili programma (vyhodnoj for-
mati proizvoditsya damp pamyati s oshibkoj ili raspechatka
nuzhnogo fajla (nahodyashchegosya, naprimer na diske).
"Imya spiska" - ispol'zuetsya, esli fajl soderzhit sim-
vol'nuyu tablicu. Esli etot operand otsutstvuet, tabli-
ca simvolov vybiraetsya iz samogo fajla, imya kotorogo
ispol'zovano v komande. Esli net vozmozhnosti najti
spisok imen, dcon mozhet byt' ispol'zovana, no uzhe bez
vozmozhnosti raboty s simvol'nymi dannymi.
Dalee privoditsya kratkoe opisanie variantov ispol'zo-
vaniya komand dcon. Bol'shinstvo komand dcon vklyuchayut
adresa operandov i rezhimy pechati. Adresa vyrazhenij,
kotorye mogut byt' ispol'zovany, privedeny nizhe:
source_name
adres imeni-istochnika (source_name), opredelen-
nogo v programme;
;r0...;r15
106
APK 00210-01 33 01-4
prosmotr registrov s 0 po 15;
;fr0...;fr6
prosmotr soderzhimogo registrov s plavayushchej
tochkoj 0,2,4,6;
local_name
imya otladchika, nachinaetsya s "#";
number
vos'merichnyj, desyatichnyj, shestnadcaterichnyj
nomer ispol'zovaniya "S" vvodnogo formata (On, n,
Oxn);
. razmeshchenie naibolee "svezhih" rezul'tatov testi-
rovaniya;
.. razmeshchenie tekushchej komandy;
$ konec fajla;
expr obychnoe vyrazhenie, isklyuchayushchee ispol'zovanie
"//" v kachestve razdelitelya;
name=expr
ob'em pamyati dlya expr;
function:variable
otnositsya k lokal'noj peremennoj (variable) v
funkcii (function);
*expr kosvennoe vyrazhenie cherez expr;
107
APK 00210-01 33 01-4
enter(name)
nachalo imeni funkcii;
exit(name)
konec imeni funkcii;
Soderzhimoe adresov, predstavlennyh v vyrazheniyah, vyvo-
ditsya soglasno sleduyushchim rezhimam. Rezhim vyvoda speci-
ficiruetsya dvumya parametrami: dlinoj simvolov i formoj
predstavleniya.
Dliny mogut byt' predstavleny v vide:
-b dlya adresuemogo bajta;
-h dlya adresuemogo poluslova;
-w dlya adresuemogo slova;
-l dlya adresuemogo dvojnogo slova;
-a dlya adresa samogo vyrazheniya.
Rezhimy vyvoda:
-d dlya desyatichnyh dannyh;
-o dlya vos'merichnyh dannyh;
-x dlya shestnadcaterichnyh dannyh;
-c dlya simvol'nyh dannyh;
-s dlya stroki simvolov (ne ukazatelej);
108
APK 00210-01 33 01-4
-i dlya mnemoniki komandy;
-ix dlya rezhimov i i x;
-v dlya simvolov, znachenie kotoryh svyazano s adre-
som.
Mogut byt' takzhe sleduyushchie varianty:
(new-line)
vyvodit ".+dlina pechati";
expr1,expr2[print-option]
pechataet razmeshchenie vyrazhenij ot expr1 do expr2;
+expr[print-option]
vyvodit ".+vyrazhenie";
-expr[print-option]
vyvodit ".-vyrazhenie";
?[print-option]
vyvodit "sled" stoka;
*[print-option]
vyvodit '*';
;psw[print-option]
vyvodit psw;
!DEMOS-command
posylaet komandy DEMOS intertritatoru shell;
{command_list}
109
APK 00210-01 33 01-4
spisok komand;
;if(expr)command
esli vyrazhenie imeet nenulevoe znachenie, command
vypolnyaetsya;
;bp expr[command_command][/*comment]
tochka preryvaniya v vyrazhenii;
;macro name(arg)command
opredelyaet lokal'noe imya makroopredeleniya, koto-
roe, kogda ispol'zuetsya, podstavlyaet znachenie
argumenta (arg);
;go [arg1 arg2...]
nachinaet vypolnenie programmy, ispol'zuya ukazan-
nye argumenty;
;cont [expr]
prodolzhaet vypolnenie vyrazheniya (expr);
;brks vyvodit tekushchie tochki preryvaniya;
;clr [expr]
rasstavlyaet tochki preryvaniya v vyrazhenii;
;quit ekvivalentno EOT (vyjti iz otladchika);
;do file
vzyat' komandy iz fajla "file";
;out [file]
nachat' kosvennyj vyvod fajla "file";
110
APK 00210-01 33 01-4
;save [expr][/*comment]
osushchestvlyaet nepreryvnoe izmenenie vyrazheniya.
Esli vyrazhenie ne specificirovano, vse izmeneniya
proishodyat nepreryvno. Izmeneniya, data, vremya,
imya modifikacii zapisyvayutsya v fajl file.cmt.
;rst [expr]
sohranyaet znachenie v expr otnositel'no ego zna-
chenij na vhode komandy dcon. Esli expr ne ukaza-
no, sohranyaetsya razmeshchenie izmenenij;
;copy file
podobno ;save isklyuchaet sohranenie izmenyaemogo
fajla v file;
;ss [n[command]]
odin shag programmy, gde "n" -nomer komandy,
posle kotoroj neobhodimo ostanovit' programmu.
111
APK 00210-01 33 01-4
IMYA:
dd - preobrazovat' i skopirovat' fajl.
FORMAT:
dd [klyuch = znachenie] ...
OPISANIE:
Komanda dd kopiruet zadannyj vhodnoj fajl v zadannyj
vyhodnoj fajl s vozmozhnymi preobrazovaniyami. Po umol-
chaniyu ispol'zuyutsya standartnyj fajl vvoda i stan-
dartnyj fajl vyvoda. Mozhet byt' zadan razmer bloka pri
vvode i vyvode, chtoby ispol'zovat' preimushchestva pryamo-
go fizicheskogo vvoda-vyvoda.
Parametr znachenie
if= Imya vhodnogo fajla (po umolchaniyu - standartnyj
fajl vvoda).
of= Imya vyhodnogo fajla (po umolchaniyu - standartnyj
fajl vyvoda).
ibs=n
Ustanavlivaet razmer bloka pri vvode ravnym n bajt
.
obs=n
Ustanavlivaet razmer bloka pri vyvode ravnym n
bajt .
bs=n
Ustanavlivaet razmer bloka kak dlya vvoda, tak i
112
APK 00210-01 33 01-4
dlya vyvoda, otmenyaya ibs i obs. Osobenno effekti-
ven, esli ne zadano preobrazovanie (ne trebuetsya
sozdanie kopii).
cbs=n
Razmer bufera preobrazovaniya.
skip=n
Propuskaet n vhodnyh zapisej pered nachalom kopiro-
vaniya.
files=n
Propuskaet n vhodnyh fajlov pered nachalom kopiro-
vaniya.
seek=n
Propuskaet n zapisej ot nachala vyhodnogo fajla
pered kopirovaniem.
count=n
Kopiruet tol'ko n vhodnyh zapisej.
conv=ascii
Vypolnyaet preobrazovanie iz koda DKOI v kod KOI-8.
conv=ebcdic
Vypolnyaet preobrazovanie iz koda KOI-8 v kod DKOI.
conv=ibm
Neskol'ko otlichayushcheesya preobrazovanie KOI-8 v
DKOI.
113
APK 00210-01 33 01-4
conv=lcase
Preobrazuet alfavitnye simvoly v nizhnij registr.
conv=ucase
Preobrazuet alfavitnye simvoly v verhnij registr.
conv=swab
Perestavlyaet kazhduyu paru bajtov.
conv=noerror
Ne prekrashchaet obrabotku pri obnaruzhenii oshibki
chteniya.
conv=sync
Dopolnyaet kazhduyu vhodnuyu zapis' do razmera ibs.
conv=...,...
Neskol'ko preobrazovanij, razdelennyh zapyatoj.
Tam, gde opredelyayutsya razmery, predpolagaetsya ukazanie
chisla bajtov. CHislo mozhet okanchivat'sya simvolami "k",
"b" ili "w", chto oznachaet umnozhenie na 1024,4096 ili 2
sootvetstvenno.Dlya oboznacheniya proizvedeniya para chisel
mozhet razdelyat'sya simvolom "x".
Parametr "cbs=n" ispol'zuetsya tol'ko togda, kogda za-
dany preobrazovaniya ascii ili ebcdic. V pervom sluchae
cbs simvolov pomeshchayutsya v bufer preobrazovaniya, preob-
razuyutsya v kod KOI-8 i pered pomeshcheniem etoj stroki v
vyhodnoj fajl zaklyuchitel'nye probely otbrasyvayutsya i
dobavlyaetsya simvol novoj stroki. Vo vtorom sluchae sim-
114
APK 00210-01 33 01-4
voly KOI-8 schityvayutsya v bufer preobrazovaniya, preob-
razuyutsya v kod DKOI i dopolnyayutsya probelami, chtoby po-
luchit' vyhodnuyu zapis' razmerom cbs.
Posle zaversheniya dd soobshchaet kolichestvo polnyh i ne-
polnyh vvedennyh i vyvedennyh blokov.
PRIMER:
Sleduyushchaya komanda perepisyvaet lentu DKOI, kotoraya so-
derzhit po desyat' 80-bajtnyh obrazov kart DKOI v bloke,
v fajl s imenem x:
dd if=/dev/mt580 of=h ibs=800 cbs=80 conv=ascii,lcase
Obratite vnimanie na ispol'zovanie nebuferizirovannogo
obmena s magnitnoj lentoj (rmt). Komanda dd osobennno
podhodit dlya nebuferizirovannogo vvoda-vyvoda, tak kak
pozvolyaet schityvat' i zapisyvat' zapisi proizvol'nogo
razmera.
DOPOLNITELXNYE SSYLKI:
cp, tr
DIAGNOSTIKA:
"f+p records in (out)" ("f+p zapisej vvedeno (vyvede-
no)"): kolichestvo polnyh i nepolnyh schitannyh (zapi-
sannyh) zapisej.
ZAMECHANIYA:
Simvoly novoj stroki vstavlyayutsya tol'ko pri preobrazo-
vanii v kod KOI-8.Dopolnenie vypolnyaetsya tol'ko pri
115
APK 00210-01 33 01-4
preobrazovanii v kod DKOI. |to sledovalo by sdelat'
otdel'nymi parametrami.
116
APK 00210-01 33 01-4
IMYA:
ddutok - perekodirovka iz koda "u-cod" MNOS.
FORMAT:
ddutok fajl ...
OPISANIE :
Komanda ddutok posledovatel'no perekodiruet kazhdyj
"fajl" iz koda "u-cod" i zapisyvaet rezul'tat pod
prezhnim imenem. Komanda rabotaet takim obrazom, chto
fajly, soderzhashchie netekstovye simvoly ili ne soderzha-
shchie russkih bukv ostayutsya neizmenennymi.
"u-cod" - eto nestandartnaya kodirovka, otlichayushchayasya ot
KOI-8 tem, chto russkie bukvy uporyadocheny po alfavitu,
strochnye bukvy nachinayutsya s koda 0340, propisnye -
0300.
DOPOLNITELXNYE SSYLKI:
dd
117
APK 00210-01 33 01-4
IMYA
demsend - perforaciya dannyh dlya sistemy DEMOS.
OPISANIE
demsend nazyvaetsya zagruzochnyj modul' programmy na
yazyke pl/1. Rezul'tatom vypolneniya etoj programmy v
srede OS ES ili PDO yavlyaetsya perforaciya fajla virtu-
al'nym perfokartochnym ustrojstvom vyvoda s napravleni-
em perforacii na virtual'nyj perfokartochnyj vvod VM
DEMOS. CHtenie s perfokartochnogo vvoda i razmeshchenie v
fajle DEMOS perforirovannyh dannyh vypolnyaet utilita
vmread. Upravlyayushchie parametry programmy demsend zapi-
syvayutsya v pole RARM operatora EXEC i imeyut sostav
analogichnyj sostavu zagolovka utility vmread:
/modes; userid; destfile.
Gde
modes pole upravlyayushchih klyuchej vmread;
userid
imya pol'zovatelya DEMOS
destfile
imya fajla DEMOS
Sleduyushchij primer pokazyvaet operatory YAUZ OS ES dlya
vypolneniya programmy demsend:
//name job ...
118
APK 00210-01 33 01-4
//*route punch mode.dem
//senddem exec pgm=demsend,parm='/s;petr1;blah'
//steplib dd dsn=engtools.public.load,disp=shr
//in dd dsn=petr1.test.blah,disp=old,dcb=(...)
//out dd dcb=(recfm=fb,lrecl=80,blksize=80),
// sysout=b
Dlya polucheniya effekta raboty programmy demsend v srede
sistemy PDO imeetsya fajl PDO nazvaniya demsend module i
komandnaya procedura demsend exec, obespechivayushchie pol'-
zovatel'skij interfejs s perforaciej.
DOPOLNITELXNYE SSYLKI
vmread, send
119
APK 00210-01 33 01-4
IMYA:
deroff - udalit' konstrukcii pif, troff, tbl i eqn.
FORMAT:
deroff [-w] fajl ...
OPISANIE:
Komanda deroff poocheredno schityvaet kazhdyj fajl i uda-
lyaet vse komandnye stroki pif, troff, konstrukcii s
obratnoj kosoj chertoj, makroopredeleniya, konstrukcii
eqn (mezhdu strokami ".eq" i ".en" ili mezhdu ogranichi-
telyami), a takzhe opisaniya tablic, i zapisyvaet ostatok
v standartnyj fajl vyvoda. Komanda deroff sleduet po
cepochkam vklyuchennyh fajlov (komandy ".so" i
".nx").Esli fajl uzhe byl vklyuchen, ".so" ignoriruetsya,
a ".nx" zavershaet vypolnenie. Esli vhodnoj fajl ne
ukazan, deroff osushchestvlyaet chtenie iz standartnogo
vhodnogo fajla.
Esli ukazan flag "-w", vyhod predstavlyaet soboj spisok
slov, po odnomu "slovu" (stroka bukv, cifr i apostro-
fov, nachinayushchayasya bukvoj; apostrofy udalyayutsya) v stro-
ke, vse ostal'nye simvoly ignoriruyutsya. V ostal'nyh
sluchayah vyhod sootvetstvuet originalu, s uchetom isklyu-
cheniya vysheupomyanutyh konstrukcij.
DOPOLNITELXNYE SSYLKI:
pif, eqn, tbl
ZAMECHANIYA:
120
APK 00210-01 33 01-4
Komanda deroff ne yavlyaetsya polnym interpretatorom pif,
vsledstvie chego utonchennye konstrukcii mogut privodit'
k oshibkam. Bol'shinstvo oshibok privodyat k slishkom bol'-
shomu, a ne slishkom malomu vyvodu.
121
APK 00210-01 33 01-4
IMYA:
diff - sravnenie fajlov i spravochnikov.
FORMAT:
diff [-l] [-r] [-s] [-cefh] [-b] spr1 spr2
diff [-cefh] [-b] fajl1 fajl2
diff [-dstroka] [-b] fajl1 fajl2
OPISANIE:
Esli oba parametra yavlyayutsya spravochnikami, diff sos-
tovlyaet spiski imen soderzhashchihsya v nih fajlov (otsor-
tirovav ih v alfavitnom poryadke) i vypolnyaet regulyar-
nuyu proceduru sravneniya nad tekstovymi fajlami. Esli v
spravochnikah soderzhatsya nesovpadayushchie podspravochniki
ili netekstovye fajly s odinakovymi imenami, oni pros-
to perechislyayutsya. Tak zhe perechislyayutsya fajly, vstrecha-
yushchiesya tol'ko v odnom iz spravochnikov. Pri sravnenii
spravochnikov mozhno zadavat' sleduyushchie klyuchi:
-l "dlinnyj format vydachi" - kazhdyj tekstovyj fajl
vyvoditsya s pomoshch'yu komandy pr.Otlichiya v fajlah
drugih tipov nakaplivayutsya i vydayutsya posle so-
obshchenij o vseh tekstovyh fajlah;
-r komanda diff vypolnyaetsya rekursivno dlya vseh
podspravochnikov s odinakovymi imenami;
-s komanda soobshchaet tol'ko o sovpadayushchih fajlah;
-sname
sravnenie soderzhimogo spravochnikov nachinaetsya s
122
APK 00210-01 33 01-4
imeni name.
Komanda diff soobshchaet, kakie stroki dolzhny byt' izme-
neny v dvuh fajlah, chtoby oni sovpali. Esli vmesto
"fajl1" ("fajl2") ukazan "-", ispol'zuetsya standartnyj
fajl vvoda. Esli odin iz parametrov ukazyvaet na spra-
vochnik, ispol'zuetsya tot fajl v etom spravochnike, ch'e
imya sovpadaet s imenem fajla "fajl2" ("fajl1"). Nor-
mal'nyj vyvod soderzhit stroki sleduyushchego vida:
n1 a n3, n4
n1, n2 d n3
n1, n2 s n3, n4
|ti stroki sootvetstvuyut komandam ed dlya preobrazova-
niya "fajla1" v "fajl2". CHisla posle bukv otnosyatsya k
fajlu "fajl2". Na samom dele, menyaya "a" na "d" i pro-
izvodya chtenie v obratnom poryadke, mozhno takzhe oprede-
lit', kak preobrazovat' "fajl2" v "fajl1". Kak i v ed,
odinakovye pary, v kotoryh n1=n2 ili n3=n4 sokrashchayutsya
do odnogo chisla.
Posle kazhdoj iz etih strok sleduyut vse sootvetstvuyushchie
stroki pervogo fajla, otmechennye "<", a zatem vse so-
otvetstvuyushchie stroki vtorogo fajla, otmechennye ">".
Klyuch "-b" privodit k ignorirovaniyu zaklyuchitel'nyh pro-
belov i simvolov tabulyacii, a takzhe k tomu, chto raz-
lichnye posledovatel'nosti probelov schitayutsya ekviva-
lentnymi.
123
APK 00210-01 33 01-4
Sleduyushchaya gruppa klyuchej yavlyaetsya vzaimoisklyuchayushchej:
-e Privodit k sozdaniyu spiska komand a, c i d dlya
redaktora ed, kotoryj vossozdaet "fajl2" iz
"fajla1". Sleduyushchaya programma dlya interpretatora
komand sovmestno s opciej "-e" pomogaet sopro-
vozhdat' neskol'ko versij fajla. Pod rukami nuzhno
imet' tol'ko ishodnuyu versiyu fajla ($1) i cepoch-
ku spiskov komand ed dlya perehoda ot odnoj ver-
sii k drugoj, poluchennyh s pomoshch'yu ed ($2, &3,
...). "poslednyaya versiya" pomeshchaetsya v stan-
dartnyj fajl vyvoda:
(shift; cat $*; echo '1,$p') ! ed -$1 ;
-f Generiruet spisok analogichnyj "-e", ne ispol'zu-
emyj s ed, i v obratnom poryadke;
-c Vydaet kontekst,v kotorom vstrechayutsya izmenennye
stroki. Po umolchaniyu vydaetsya tri stroki do i
tri stroki posle razlichayushchihsya strok. CHislo do-
polnitel'no vydavaemyh strok mozhno zadavat'. Tak
komanda s klyuchom "-c10", budet vydavat' 10 strok
do i 10 strok posle kazhdoj razlichayushchejsya stro-
ki. Krome togo, pri zadanii "-c" vydayutsya imena
sravnivaemyh fajlov s datami ih sozdaniya. Soob-
shcheniya o kazhdom izmenenii razdelyayutsya strokami
"**********". Stroki,otsutstvuyushchie v fajle1,mar-
kiruyutsya simvolom "-".Stroki,dobavlennye v faj-
l2,simvolom "+". izmenennye stroki simvolom "!";
124
APK 00210-01 33 01-4
-Dstroka
Sozdaet ob'edinennuyu versiyu fajlov (fajl1 i
fajl2), okruzhaya vse razlichayushchiesya stroki direk-
tivami uslovnoj kompilyacii preprocessora yazyka
Si. Pri etom "stroka" ispol'zuetsya v kachestve
argumenta direktiv preprocessora. Tak, esli v
fajlax file1 i file2 razlichaetsya stroka:
long int k=1000000 /* stroka iz file1 */
int k=1000000 /* stroka iz file2 */
komanda:
diff -DLONGINT file1 file2
provodit vydachu v standartnyj vyvod fajla, v ko-
torom dannaya stroka budet zamenena na sleduyushchuyu
konstrukciyu:
#ifndef LONGINT
long int k=1000000 /* stroka iz file1 */
#else
int k=1000000 /* stroka iz file2 */
#endif
-h Vypolnyaet svoyu rabotu bystro i grubo. Ona rabo-
taet tol'ko v teh sluchayah, kogda uchastki izmene-
nij maly i horosho otdeleny drug ot druga, odnako
mozhet obrabatyvat' fajly neogranichennoj dliny. S
klyuchom "-h" ne dopuskayutsya klyuchi "-e" i "-f".
Za isklyucheniem redkih sluchaev, diff nahodit naimen'shij
125
APK 00210-01 33 01-4
dostatochnyj nabor razlichij fajlov.
FAJLY:
/tmp/d?????
/usr/lib/diffh dlya klyucha "-h".
DOPOLNITELXNYE SSYLKI:
cmp, comm, ed
DIAGNOSTIKA:
Kod vozvrata raven:
0 - esli net razlichij;
1 - esli razlichiya est';
2 - esli vypolenie komandy neudachno.
ZAMECHANIYA:
Spiski redaktirovaniya, generiruemye s klyuchami "-e" i
"-f", ne sozdayut strok, sostoyashchih iz odnoj ".".
126
APK 00210-01 33 01-4
IMYA:
diff3 - sravnenie treh fajlov.
FORMAT:
diff3 [-eh3] fajl1 fajl2 fajl3
OPISANIE:
Komanda diff3 sravnivaet tri versii fajla i soobshchaet
stepeni rassoglasovaniya tekstov, otmechaemye sleduyushchimi
kodami:
==== vse tri fajla razlichny;
====1 otlichaetsya "fajl1";
====2 otlichaetsya "fajl2";
====3 otlichaetsya "fajl3".
Vid izmeneniya, pozvolyayushchij preobrazovat' dannyj uchas-
tok dannogo fajla, ukazyvaetsya odnim iz sleduyushchih spo-
sobov:
f:n1 a
tekst dolzhen byt' dobavlen posle stroki s nome-
rom n1 v fajle "f", gde f=1, 2 ili 3.
f:n1,n2 c
Tekst dolzhen byt' izmenen na uchastke ot stroki
n1 do stroki n2. Esli n1=n2, uchastok mozhet byt'
sokrashchen do n1.
Ishodnoe soderzhimoe uchastka privoditsya srazu zhe posle
127
APK 00210-01 33 01-4
ukazaniya "c". Esli soderzhimoe dvuh fajlov odinakovo,
soderzhimoe fajla s men'shim nomerom ne vyvoditsya.
S klyuchom "-e" diff3 sozdaet komandnyj fajl dlya redak-
tora ed, kotoryj vklyuchit v "fajl1" vse izmeneniya mezhdu
fajlami "fajl2" i "fajl3", t.e. izmeneniya, kotorye
normal'no byli by pomecheny "====" i "====3". Opciya
"-x" ("-3") sozdaet komandnyj fajl dlya vklyucheniya
tol'ko izmenenij, otmechaemyh "====" ("====3"). Sledu-
yushchaya komanda primenit poluchennyj v rezul'tate ko-
mandnyj fajl (script) k fajlu "fajl1":
(cat script; echo '1,$p') | ed - fajl1
FAJLY:
/tmp/d3?????
/usr/lib/diff3
DOPOLNITELXNYE SSYLKI:
diff
ZAMECHANIYA:
Stroki teksta, sostoyashchie iz odnoj ".", narushayut rabotu
"-e".
Fajly, dlina kotoryh prevyshaet 64K bajt, ne obrabaty-
vayutsya.
128
APK 00210-01 33 01-4
IMYA:
du - pechat' svedenij ob ispol'zovanii diskov.
FORMAT:
du [-s] [-a] [imya...]
OPISANIE:
Komanda du vydaet chislo blokov, zanimaemyh vsemi faj-
lami i spravochnikami (rekursivno), soderzhashchmisya vnutri
kazhdogo zadannogo spravochnika ili fajla "imya". Esli
"imya" otsutstvuet, ispol'zuetsya ".".
Klyuch "-s" vyzyvaet vydachu tol'ko obshchego itoga. Klyuch
"-a" vyzyvaet vyvod soobshcheniya po kazhdomu fajlu. Pri
otsutstvii klyucha soobshcheniya generiruyutsya tol'ko po
spravochnikam.
Fajly, kotorye imeyut neskol'ko al'ternativnyh imen,
uchityvayutsya tol'ko odin raz.
ZAMECHANIYA:
Esli v kachestve parametrov zadany ne spravochniki i ne
ukazan klyuch "-a", to oni ne raspechatyvayutsya.
Esli imeetsya slishkom mnogo razlichnyh al'ternativnyh
imen fajlov, komanda du uchityvaet izbytochnye fajly po
neskol'ko raz.
129
APK 00210-01 33 01-4
IMYA:
ES - postroitel' sredy Paskalya
FORMAT:
ES
OPISANIE:
ES prinimaet na standartnom vhode ishodnyj tekst prog-
rammy na Paskale i izvlekaet ob'yavleniya. |ta komanda
pozvolyaet sozdavat' sredu dlya $x-opcii kompilyacii.
130
APK 00210-01 33 01-4
IMYA:
echo - vydacha parametrov.
FORMAT:
echo [-n] [param] ...
OPISANIE:
Komanda echo zapisyvaet svoi parametry, razdelennye
probelami i zakanchivayushchiesya simvolom novoj stroki, v
standartnyj fajl vyvoda. Esli ispol'zuetsya flag "-n",
k vyvodu ne dobavlyaetsya simvol novoj stroki.
Komanda echo ispol'zuetsya dlya vydachi diagnosticheskih
soobshchenij v programmah interpretatora komand i dlya za-
pisi postoyannyh dannyh v potokah. Dlya posylki diagnos-
ticheskogo soobshcheniya v standartnyj fajl oshibok vypolni-
te komandu:
echo "tekst soobshcheniya" 1>&2
131
APK 00210-01 33 01-4
IMYA:
ed - strochnyj redaktor tekstov.
FORMAT:
ed [-] [-h] [imya]
OPISANIE:
Dlya UNIX-obraznyh sistem, ed yavlyaetsya standartnym re-
daktorom tekstov. Pri interaktivnoj rabote on ustupaet
po udobstvu poliekrannomu redaktoru, no mozhet rabotat'
s lyubymi terminalami (naprimer, s teletajpami).
Redaktor ed rabotaet s kopiej redaktiruemogo fajla.
Sdelannye v kopii izmeneniya ne vliyayut na ishodnyj fajl
do teh por, poka ne budet vydana komanda "w" (zapis').
Kopiya redaktiruemogo teksta razmeshchaetsya vo vremennom
fajle, nazyvaemom "buferom".
Esli zadan parametr "imya", ukazannyj fajl schityvaetsya
v bufer redaktora dlya posleduyushchej obrabotki. Esli uka-
zan klyuch "-h", pered chteniem fajla vypolnyaetsya komanda
"x" dlya raboty s zashifrovannymi fajlami. Klyuch "-" po-
davlyaet pechat' poyasnitel'nyh soobshchenij i ispol'zuetsya
pri vvode instrukcij redaktirovaniya iz komandnogo
fajla.
Komandy redaktora ed imeyut prostuyu i regulyarnuyu struk-
turu: 0 ili neskol'ko "ukazatelej", za kotorymi sledu-
et odnosimvol'noe "imya komandy" i, vozmozhno, paramet-
ry. "Ukazateli" opredelyayut odnu ili neskol'ko strok v
132
APK 00210-01 33 01-4
bufere. Propushchennye adresa dopolnyayutsya po umolchaniyu.
Vo vremya raboty ed mozhet nahodit'sya libo v komandnom
rezhime (kogda vvodimye stroki rassmatrivayutsya kak
instrukcii redaktirovaniya), libo v rezhime vvoda (t.e.
nabiraemaya informaciya prosto perepisyvaetsya v fajl). V
nachale seansa redaktor nahoditsya v komandnom rezhime.
Esli byl perehod v rezhim vvoda, redaktor vosprinimaet
tol'ko odnu komandu - vyhod iz dannogo rezhima (tochka v
pervoj pozicii stroki).
V redaktore ed v ogranichennom vide ispol'zuetsya ponya-
tie "regulyarnogo vyrazheniya". Regulyarnoe vyrazhenie op-
redelyaet mnozhestvo strok simvolov. Govoryat, chto chlen
etogo mnozhestva sootvetstvuet etomu regulyarnomu vyra-
zheniyu. V privedennom opredelenii regulyarnyh vyrazhenij
slovo "simvol" oznachaet lyuboj simvol, za isklyucheniem
simvola novoj stroki:
1) Lyuboj simvol, za isklyucheniem special'nyh simvo-
lov, sootvetstvuet samomu sebe. Special'nymi sim-
volami yavlyayutsya razdelitel' regulyarnyh vyrazhenij,
znaki "[." i, inogda "^*$";
2) "." sootvetstvuet lyubomu simvolu;
3) "
niem cifry ili "()", sootvetstvuet etomu simvolu;
4) Nepustaya stroka "s", zaklyuchennaya v kvadratnye
skobki ([s] ili [^s]), sotvetstvuet lyubomu simvo-
133
APK 00210-01 33 01-4
lu,vhodyashchemu (ili ne vhodyashchemu) v stroku "s".
Vnutri stroki "s" simvol "
go znacheniya, a "]" mozhet poyavlyat'sya tol'ko v ka-
chestve pervoj bukvy. Podstroka "a-b", gde "a" i
"b" raspolozheny v vozrastayushchem poryadke otnosi-
tel'no russkogo ili latinskogo alfavitov (dlya
special'nyh simvolov otnositel'no koda KOI-8),
oboznachaet diapazon simvolov ot "a" do "b", vklyu-
chitel'no;
5) Regulyarnoe vyrazhenie vida 1-4, za kotorym sleduet
"*", opredelyaet posledovatel'nost' iz 0 ili bolee
sootvetstvij etomu regulyarnomu vyrazheniyu;
6) Regulyarnoe vyrazhenie "x", nahodyashcheesya mezhdu "
i ")", sootvetstvuet tomu zhe, chto i "x";
7) Znak "
toj zhe stroke, chto i nahodyashcheesya v skobkah regu-
lyarnoe vyrazhenie, nachinayushcheesya s n-oj "
8) Regulyarnoe vyrazhenie "x" vida 1-8, za kotorym
sleduet regulyarnoe vyrazhenie "y" vida 1-7, soot-
vetstvuet sootvetstvie dlya "x", za kotorym sledu-
et sootvetstvie dlya "y", prichem sootvetstvie dlya
"x" vybiraetsya kak mozhno bol'shim, odnako dopuska-
yushchim sootvetstvie dlya "y";
9) Regulyarnoe vyrazhenie vida 1-8, kotoromu pred-
shestvuet "^" (ili za kotorym sleduet "$"), ogra-
134
APK 00210-01 33 01-4
nicheno sootvetstviyami, nachinayushchimisya v levom (ili
zakanchivayushchimisya v pravom) konce stroki;
10) Regulyarnoe vyrazhenie vida 1-9 vybiraet samoe
dlinnoe i krajnee sleva sootvetstvie v stroke;
11) Pustoe regulyarnoe vyrazhenie zamenyaet poslednee
vstrechennoe regulyarnoe vyrazhenie.
Regulyarnye vyrazheniya ispol'zuyutsya v adresah dlya opre-
deleniya strok, a takzhe v odnoj komande (s) dlya oprede-
leniya chasti stroki, kotoruyu nuzhno zamenit'. Esli tre-
buetsya ispol'zovat' odin iz metasimvolov regulyarnyh
vyrazhenij v kachestve obychnogo simvola, etomu simvolu
dolzhna predshestvovat' "
lam, svyazyvayushchim regulyarnye vyrazheniya (chasto "/"), tak
i k samomu simvolu "
Dlya ponimaniya sistemy adresacii v redaktore ed neobho-
dimo predstavlyat' sebe, chto v kazhdyj moment vremeni
sushchestvuet "tekushchaya stroka". Voobshche govorya, tekushchaya
stroka predstavlyaet soboj poslednyuyu stroku, obrabotan-
nuyu nekotoroj komandoj, odnako tochnoe vliyanie na polo-
zhenie tekushchej stroki rassmatrivaetsya v opisanii
komand. Adresa stroyatsya sleduyushchim obrazom.
1) Simvol "." adresuet tekushchuyu stroku;
2) Simvol "$" adresuet poslednyuyu stroku bufera;
3) Desyatichnoe chislo "n" adresuet n-uyu stroku bufera;
135
APK 00210-01 33 01-4
4) "/x" ukazyvaet stroku, pomechennuyu imenem "x", ko-
toroe dolzhno predstavlyat' soboj maluyu bukvu.
Stroki pomechayutsya s pomoshch'yu komandy "k", kotoraya
opisana nizhe;
5) Regulyarnoe vyrazhenie, zaklyuchennoe v simvoly "/",
ukazyvaet stroku, kotoraya opredelyaetsya putem po-
iska vpered ot tekushchej stroki do pervoj stroki,
soderzhashchej posledovatel'nost' simvolov, soot-
vetstvuyushchuyu dannomu regulyarnomu vyrazheniyu. Pri
neobhodimosti posle dostizheniya konca bufera poisk
prodolzhaetsya s ego nachala;
6) Regulyarnoe vyrazhenie, zaklyuchennoe v voprositel'-
nye znaki "?", adresuet stroku, kotoraya opredelya-
etsya putem poiska nazad ot tekushchej stroki do
pervoj stroki, soderzhashchej posledovatel'nost' sim-
volov, sootvetstvuyushchuyu dannomu regulyarnomu vyra-
zheniyu. Pri neobhodimosti posle dostizheniya nachala
bufera poisk prodolzhaetsya s ego konca;
7) Adres, za kotorym sleduet znak "+" ili znak "-" i
desyatichnoe chislo, opredelyaet etot adres plyus (ili
minus) ukazannoe kolichestvo strok. Znak plyus
mozhet byt' opushchen;
8) Esli adres nachinaetsya so znaka "+" ili "-", vy-
polnyaetsya slozhenie ili vychitanie po otnosheniyu k
tekushchej stroke. Naprimer, "-5" oznachaet ".-5".
136
APK 00210-01 33 01-4
9) Esli adres zakanchivaetsya znakom "+" ili "-", k
nemu dobavlyaetsya (ili vychitaetsya) 1. Kak
sledstvie etogo pravila i pravila 8, adres "-"
otnositsya k stroke, kotoraya predshestvuet tekushchej
stroke. Bolee togo, znaki "+" i "-" v konce obla-
dayut effektom nakopleniya, tak chto "--" otnositsya
k tekushchej stroke minus 2.
10) Simvol "^" v adresah ekvivalenten simvolu "-".
Komandy mogut trebovat' ni odnogo, odin ili dva adre-
sa. Komandy, v kotoryh ne trebuetsya adres, rassmatri-
vayut nalichie adresa kak oshibku. Esli v komandah, gde
trebuetsya odin ili dva adresa, ukazano nedostatochnoe
kolichestvo adresov, prinimayutsya standartnye adresa.
Esli v komande ukazano bol'she adresov, chem trebuetsya,
ispol'zuyutsya poslednie odin ili dva adresa (v zavisi-
mosti ot togo, skol'ko nuzhno).
Obychno adresa otdelyayutsya drug ot druga s pomoshch'yu zapya-
toj ",". Oni mogut razdelyat'sya takzhe tochkoj s zapyatoj
";". V etom sluchae tekushchaya stroka "." ustanavlivaetsya
na pervyj adres pered tem, kak interpretiruetsya sledu-
yushchij. |ta osobennost' mozhet byt' ispol'zovana pri op-
redelenii nachal'noj stroki dlya pryamogo i obratnogo po-
iska ("/", "?"). Vtoroj adres lyuboj dvuhadresnoj pos-
ledovatel'nosti dolzhen sootvetstvovat' stroke, sledu-
yushchej za strokoj, kotoraya sootvetstvuet pervomu adresu.
V privedennom spiske komand redaktora ed standartnye
137
APK 00210-01 33 01-4
adresa ukazany v skobkah. Skobki ne yavlyayutsya chast'yu
adresa, a ispol'zuyutsya lish' dlya togo, chtoby pokazat',
chto dannye adresa yavlyayutsya standartnymi.
Kak otmechalos' ranee, poyavlenie v odnoj stroke nes-
kol'kih komand v obshchem sluchae yavlyaetsya oshibkoj. Odna-
ko, k bol'shinstvu komand mogut byt' dobavleny komandy
"p" ili "l", kotorye vyzyvayut raspechatku tekushchej stro-
ki v odnom iz dvuh formatov.
K komandam mozhet takzhe dobavlyat'sya komanda "n", koto-
raya vyzyvaet pechat' nomera stroki v vyvode komandy.
|ti suffiksy mogut ob'edinyat'sya v lyubom poryadke.
(.)a
<tekst>
.
Komanda dozapisi - schityvaet ukazannyj tekst i
dobavlyaet ego posle stroki s ukazannym adresom.
"." ostaetsya v poslednej vvedennoj stroke, esli
ona imeetsya, v protivnom sluchae - v adresuemoj
stroke. V etoj komande dopuskaetsya adres "0",
pri etom tekst pomeshchaetsya v nachalo bufera.
(.,.)c
<tekst>
.
Komanda zameny udalyaet adresuemye stroki, zatem
schityvaet vvodimyj tekst, kotoryj zamenyaet eti
138
APK 00210-01 33 01-4
stroki. "." ostaetsya v poslednej vvedenoj stro-
ke; esli takovyh ne bylo, ona ostaetsya v stroke,
predshestvovavshej udalennym strokam.
(...) d
Komanda udaleniya udalyaet adresuemye stroki iz
bufera. Tekushchej stanovitsya stroka, pervonachal'no
nahodivshayasya posle poslednej udalennoj stroki.
Esli udalennye stroki raspolagalis' v konce, te-
kushchej strokoj stanovitsya novaya poslednyaya stroka.
e imya_fajla
Komanda redaktirovaniya vyzyvaet udalenie vsego
soderzhimogo bufera i posleduyushchee schityvanie v
nego fajla s ukazannym imenem. "." ustanavliva-
etsya na poslednej stroke bufera. Pechataetsya ko-
lichestvo schitannyh simvolov. "imya_fajla" zapomi-
naetsya dlya vozmozhnogo ispol'zovaniya v kachestve
standartnogo imeni fajla v posleduyushchih komandah
r ili w. Esli "imya_fajla" otsutstvuet, ispol'zu-
etsya zapomnennoe imya.
E imya_fajla
|ta komanda vypolnyaet te zhe dejstviya, chto i ko-
manda "e", za isklyucheniem togo, chto ne vydaetsya
diagnosticheskih soobshchenij, esli posle poslednego
izmeneniya bufera ne byla vydana komanda "w".
f imya_fajla
Komanda pechati imeni fajla raspechatyvaet tekushchee
139
APK 00210-01 33 01-4
zapomnennoe imya fajla. Esli ukazyvaetsya
"imya_fajla", tekushchee zapomnennoe imya fajla zame-
nyaetsya na "imya_fajla".
(1,$) g/regulyarnoe vyrazhenie/spisok komand
V etoj komande na pervom shage pomechayutsya vse
stroki, kotorye sootvetstvuyut zadannomu regulyar-
nomu vyrazheniyu. Posle etogo dlya kazhdoj takoj
stroki vypolnyaetsya zadannyj spisok komand, pri-
chem "." pervonachal'no ustanavlivaetsya v etoj
stroke. Odna komanda ili pervaya iz neskol'kih
komand raspolagaetsya v toj zhe stroke, chto i ko-
manda "g". Vse stroki spiska, sostoyashchie iz nes-
kol'kih strok, dolzhny zakanchivat'sya simvolom
"
reblenie komand "a", "i" "c" i svyazannogo s nimi
vvoda. ".", zavershayushchaya rezhim vvoda, mozhet byt'
opushchena, esli ona nahoditsya v poslednej stroke
spiska komand. Komandy "g" i "v" v spiske komand
ne dopuskayutsya.
(.)i
<tekst>
.
|ta komanda vstavlyaet zadannyj tekst pered adre-
suemoj strokoj. "." ostaetsya v poslednej vvodi-
moj stroke ili, esli ee net, v stroke pered ad-
resuemoj strokoj. |ta stroka otlichaetsya ot ko-
140
APK 00210-01 33 01-4
mandy a tol'ko mestom, kuda pomeshchaetsya tekst.
(.,.+1)j
|ta stroka ob'edinyaet adresuemye stroki v odnu
stroku. Promezhutochnye simvoly novoj stroki pros-
to ischezayut. "." ostaetsya v rezul'tiruyushchej stro-
ke.
(.)kh Komanda markirovaniya prisvaivaet adresuemoj
stroke imya "h", kotoroe dolzhno predstavlyat'
soboj maluyu bukvu. Vposledstvii dannaya stroka
mozhet adresovat'sya s pomoshch'yu formy adresa "'h".
(.,.)l
|ta komanda raspechatyvaet adresuemye stroki pod-
robnym obrazom: negraficheskie simvoly pechatayutsya
v vide dvuh vos'merichnyh cifr, a dlinnye stroki
perenosyatsya. Komanda "l" mozhet raspolagat'sya v
odnoj i toj zhe stroke posle lyuboj ne svyazannoj s
vvodom-vyvodom komandy.
(.,.)ma
Komanda peresylki peremeshchaet adresuemye stroki i
pomeshchaet ih posle stroki, adresuemoj s pomoshch'yu
"a". Poslednyaya iz peremeshchennyh strok stanovitsya
tekushchej strokoj.
(.,.)n
Komanda numeracii raspechatyvaet adresuemye stro-
ki vmeste s nomerami strok i simvolom tabulyacii
141
APK 00210-01 33 01-4
sleva.
(.,.)p
|ta komanda raspechatyvaet adresuemye stroki. "."
ostaetsya v poslednej raspechatannoj stroke.
Komanda p mozhet raspolagat'sya v odnoj i toj zhe
stroke posle lyuboj ne svyazannoj s vvodom-vyvodom
komandy.
(.,.)P
|ta komanda yavlyaetsya sinonimom komandy "p".
q Komanda vyhoda vyzyvaet vyhod iz redaktora ed.
Avtomaticheskaya zapis' v fajl ne proizvoditsya.
Q |ta komanda analogichna komande "q", za isklyuche-
niem togo, chto ne vydaetsya diagnosticheskih soob-
shchenij, esli posle poslednego izmeneniya bufera ne
byla vydana komanda "w".
($)r imya_fajla
Komanda chteniya schityvaet ukazannyj fajl i pome-
shchaet rezul'tat posle adresuemoj stroki. Esli imya
fajla ne ukazano, ispol'zuetsya zapomnennoe imya
fajla, esli takovoe imeetsya (sm. komandy "l" i
"f"). Imya fajla zapominaetsya, esli uzhe ne bylo
zapomnennogo imeni fajla. Dlya komandy "r" dopus-
kaetsya adres "0", kotoryj privodit k tomu, chto
fajl schityvaetsya v nachalo bufera. Esli schityva-
nie proshlo uspeshno, pechataetsya kolichestvo schi-
142
APK 00210-01 33 01-4
tannyh simvolov. "." ostaetsya v poslednej schi-
tannoj iz fajla stroke.
(.,.)s/regulyarnoe vyrazhenie/zamena/ ili
(.,.)s/regulyarnoe vyrazhenie/zamena/g
Komanda podstanovki prosmatrivaet kazhduyu adresu-
emuyu stroku na predmet sootvetstviya zadannomu
regulyarnomu vyrazheniyu. Esli posle komandy ukazan
indikator global'nogo zameshcheniya "g", v kazhdoj
stroke, v kotoroj obnaruzheno sootvetstvie, vse
sootvetstvuyushchie posledovatel'nosti simvolov za-
meshchayutsya ukazannoj "zamenoj". Esli indikator
global'nogo zameshcheniya otsutstvuet, zamenyaetsya
tol'ko pervaya sootvetstvuyushchaya posledovatel'nost'
simvolov. Esli podstanovka ne vypolnyaetsya ni v
odnoj iz adresuemyh strok, eto yavlyaetsya oshibkoj.
Dlya razdeleniya regulyarnogo vyrazheniya i zameny
vmesto "/" mozhet ispol'zovat'sya lyuboj simvol
punktuacii. "." ostaetsya v poslednej stroke, gde
byla vypolnena podstanovka. Ampersand "&",
vstrechayushchijsya v zamene, zamenyaetsya strokoj sim-
volov, sootvetstvuyushchej regulyarnomu vyrazheniyu.
Special'noe znachenie simvola "&" v ukazannom
kontekste mozhet byt' otmeneno posredstvom ukaza-
niya pered nim "
zameshchayutsya tekstom, sootvetstvuyushchim n-omu regu-
lyarnomu vyrazheniyu, zaklyuchennomu mezhdu " i
")". Esli imeyutsya vlozhennye podvyrazheniya v
143
APK 00210-01 33 01-4
skobkah, "n" opredelyaetsya putem podscheta sluchaev
upotrebleniya " nachinaya sleva. Stroki mogut
byt' razdeleny posredstvom podstanovki v nih
simvolov novoj stroki. Simvoly novoj stroki v
stroke zameny dolzhny byt' vydeleny posredstvom
ukazaniya pered nimi simvola "
zaklyuchitel'nyh razdelitelya mogut byt' opushcheny,
podrazumevaya suffiks "p". Special'naya forma ko-
mandy "s" bez posleduyushchih razdelitelej povtoryaet
poslednyuyu komandu podstanovki dlya adresuemyh
strok. Posle "s" mogut sledovat' bukvy "r" (is-
pol'zovat' poslednee regulyarnoe vyrazhenie v
levoj storone vmesto poslednej komandy podsta-
novki v levoj storone), "p" (dopolnyaet ustanovku
suffiksa "p" dlya predydushchej ustanovki) i g (do-
polnyaet ustanovku suffiksa "g"). |ti bukvy mogut
ob'edinyat'sya v lyubom poryadke.
(.,.)t a
|ta komanda rabotaet analogichno komande "m", za
isklyucheniem togo, chto kopiya adresuemyh strok po-
meshchaetsya posle adresa "a" (kotoryj mozhet byt'
0). "." ostaetsya v poslednej stroke kopii.
(.,.)u
Komanda annulirovaniya vosstanavlivaet bufer,
vozvrashchaya ego v sostoyanie, kotoroe on imel pered
poslednej komandoj modifikacii bufera. Polozhenie
tekushchej stroki takzhe vosstanavlivaetsya. Komanda-
144
APK 00210-01 33 01-4
mi, modificiruyushchimi bufer, yavlyayutsya "a, c, d, g,
i, k i v". Pri anulirovanii "g" i "v" rassmatri-
vayutsya kak odinochnye komandy modifikacii bufera.
Komanda anulirovaniya yavlyaetsya inversnoj po
otnosheniyu k samoj sebe. Kogda redaktoru ed ne
hvataet pamyati, polnoe annulirovanie nevozmozhno,
i komanda "u" mozhet annulirovat' tol'ko vliyanie
poslednej podstanovki v tekushchej stroke. Takoe
ogranichennoe annulirovanie otnositsya takzhe i k
komandnym fajlam redaktora, kogda ed vyzyvaetsya
s klyuchem "-".
(1,$)v/regulyarnoe vyrazhenie/spisok komand
|ta komanda analogichna komande "g", za isklyuche-
niem togo, chto spisok komand vypolnyaetsya pri na-
chal'noj ustanovke "." na kazhduyu stroku krome
teh, kotorye sootvetstvuyut regulyarnomu vyrazhe-
niyu.
(1,$)w imya_fajla
Komanda zapisi zapisyvaet adresuemye stroki v
ukazannyj fajl. Esli fajl ne sushchestvuet, on soz-
daetsya. Imya fajla zapominaetsya, esli eshche ne bylo
zapomnennogo imeni. Esli imya fajla ne zadaetsya,
ispol'zuetsya zapomnennoe imya fajla, esli ono
imeetsya (sm. komandy "e" i "f"). Polozhenie "."
ne izmenyaetsya. Esli dannaya komanda vypolnilas'
uspeshno, pechataetsya kolichestvo zapisannyh simvo-
lov.
145
APK 00210-01 33 01-4
(1,$)W imya_fajla
|ta komanda analogichna komande "w", za isklyuche-
niem togo, chto adresuemye stroki dobavlyayutsya k
fajlu.
(1,$)WQ imya_fajla
|ta komanda analogichna komande "w", za isklyuche-
niem togo, chto zatem vypolnyaetsya komanda "q",
osushchestvlyayushchaya vyhod iz redaktora posle zapisi
fajla.
x Iz standartnogo vvoda zaprashivaetsya stroka s
klyuchom. Vposledstvii komandy "r", "e" i "w"
budut zashifrovyvat' i rasshifrovyvat' tekst s po-
moshch'yu algoritma "crypt", ispol'zuya etot klyuch.
Pustoj klyuch otmenyaet rezhim shifracii.
(.+1)z
ili
(.+1)zn
|ta komanda ispol'zuetsya dlya prosmotra bufera,
nachinaya s ishodnoj stroki. Raspechatyvaetsya 22
(ili "n", esli ukazano) stroki. Poslednyaya nape-
chatannaya stroka stanovitsya tekushchej strokoj. Zna-
chenie "n" zapominaetsya, t.e. ono stanovitsya
standartnym dlya posleduyushchih komand "z".
($)= Raspechatyvaetsya nomer stroki dlya adresuemoj
stroki. |ta komanda ne menyaet polozheniya ".".
146
APK 00210-01 33 01-4
!<komanda yazyka upravleniya zadaniyami>
CHast' stroki posle "!" peredaetsya sh dlya vypol-
neniya v kachestve komandy. Polozhenie "." ne menya-
etsya.
(.+1,.+1) <konec stroki>
Odinochnyj adres v stroke vyzyvaet raspechatku ad-
resuemoj stroki. Pustaya stroka ekvivalentna
".+1r". |to polezno dlya prohoda po tekstu. Esli
ukazyvaetsya dva adresa, ne razdelyaemye tochkoj s
zapyatoj, redaktor ed raspechatyvaet ukazannyj di-
apazon strok. Esli oni razdeleny tochkoj s zapya-
toj, raspechatyvaetsya vtoraya stroka.
Esli posylaetsya signal preryvaniya, redaktor ed pechata-
et "?interrupted" ("?prervan") i vozvrashchaetsya v ko-
mandnyj rezhim.
Nekotorye razmernye ogranicheniya: 512 simvolov v stro-
ke, 256 simvolov v spiske komand dlya komandy "g", 64
simvola v imeni fajla. Predel kolichestva strok zavisit
ot razmera operativnoj pamyati: kazhdaya stroka zanimaet
2 slova.
Pri chtenii fajla ed otbrasyvaet simvoly nul koda KOI-8
i vse simvoly posle poslednego simvola novoj stroki.
FAJLY:
/tmp/e*
edhup
147
APK 00210-01 33 01-4
Pri zavisanii terminala zdes' sohranyaetsya protokol vy-
polnennoj raboty.
DOPOLNITELXNYE SSYLKI:
sed, crypt
DIAGNOSTIKA:
"?name" dlya nedostupnogo fajla.
"?" pri prochih oshibkah.
Dlya predotvrashcheniya poteri cennoj informacii komandy
"q" i "e" schitayutsya oshibochnymi, esli posle poslednej
modifikacii bufera ne byla vydana komanda "w". Povtor-
naya komanda "q" ili "e" vypolnyaetsya vsegda.
ZAMECHANIYA:
Komanda "l" nepravil'no obrabatyvaet simvol "del"
("zaboj").
Komanda annulirovaniya privodit k potere metok v
vosstanovlennyh strokah.
148
APK 00210-01 33 01-4
IMYA:
expand, unexpand - razvernut' (svernut') simvoly tabu-
lyacii.
FORMAT:
expand [-tabstop] [-tab1, tab2, ..., tabN] [fajl ... ]
unexpand [-a] [fajl ... ]
OPISANIE:
Komanda expand obrabatyvaet ukazannye fajly ili stan-
dartnyj vvod i proizvodit zapis' v standartnyj vyvod,
zamenyaya simvoly tabulyacii na probely. Simvoly vozvrata
na shag v vyvode sohranyayutsya i umen'shayut schetchik pozi-
cij dlya svyazannyh s tabulyaciej raschetov. Komanda
expand polezna dlya predvaritel'noj obrabotki simvol'-
nyh fajlov, soderzhashchih simvoly tabulyacii (pered sorti-
rovkoj, prosmotrom opredelennyh stolbcov i t.p.).
Esli zadan edinstvennyj parametr "tabstop", razmer ta-
bulyacii ustanavlivaetsya ravnym "tabstop" probelam
vmesto standartnogo znacheniya 8. Esli zadano neskol'ko
tabulyacionnyh ostanovov, pozicii tabulyacii ustanavli-
vayutsya v ukazannyh stolbcah.
Komanda unexpand zamenyaet posledovatel'nosti probelov
na simvoly tabulyacii, chitaya ishodnye dannye iz stan-
dartnogo vvoda ili (esli zadany fajly) iz ukazannyh
fajlov. Esli zadan klyuch "-a", simvoly tabulyacii vstav-
lyayutsya vezde,gde eto vozmozhno. Po umolchaniyu unexpand
zamenyaet na simvoly tabulyacii tol'ko pervye probely.
149
APK 00210-01 33 01-4
IMYA:
expr - vychislenie parametrov kak vyrazheniya.
FORMAT:
expr param ...
OPISANIE:
Parametry rassmatrivayutsya kak vyrazhenie. Posle vychis-
leniya rezul'tat zapisyvaetsya v standartnyj vyvod.
Kazhdyj chlen vyrazheniya predstavlyaet soboj otdel'nyj pa-
rametr.
Operacii i klyuchevye slova. |tot spisok sostavlen v po-
ryadke vozrastaniya starshinstva operacij.Operacii s odi-
nakovym starshinstvom sgruppirovany:
Vyr ! vyr
Vyvodit pervoe vyrazhenie "vyr", esli ono ne pus-
toe i ne ravno "0", v protivnom sluchae vyvodit
vtoroe vyrazhenie;
Vyr & vyr
Esli ni odno iz vyrazhenij ne yavlyaetsya pustym ili
"0", vyvodit pervoe vyrazhenie, v protivnom slu-
chae vyvodit "0";
Vyr opotn vyr
"Opotn" predstavlyaet soboj odnu iz operacij ot-
nosheniya <, <=, =, !=, >=, >. Vyvodit "1", esli
ukazannoe sravnenie verno, i "0", esli ono oshi-
bochno. Esli oba vyrazheniya yavlyayutsya celymi, srav-
150
APK 00210-01 33 01-4
nenie yavlyaetsya chislennym, inache ono yavlyaetsya
leksikograficheskim;
vyr + vyr
vyr - vyr
Slozhenie ili vychitanie parametrov;
Vyr * vyr
vyr / vyr
vyr % vyr
Umnozhenie, delenie ili vychislenie ostatka ot de-
leniya parametrov;
Vyr : vyr
Operaciya sravnivaet stroku, soderzhashchuyusya v
pervom parametre, s regulyarnym vyrazheniem, so-
derzhashchimsya vo vtorom parametre. Sintaksis regu-
lyarnogo vyrazheniya takoj zhe, kak v redaktore ed.
Simvoly shablona .) mogut ispol'zovat'sya dlya vy-
bora chasti pervogo parametra. V ostal'nyh slucha-
yah vyvoditsya kolichestvo simvolov, sootvetstvu-
yushchih shablonu ("0", esli sravnenie neudachno);
( Vyr )
Skobki dlya gruppirovki.
PRIMERY:
Uvelichenie na "1" peremennoj A yazyka upravleniya zada-
niyami:
151
APK 00210-01 33 01-4
A=`expr $A + 1`
Nahozhdeniya chasti imeni fajla (mladshej chasti) iz polno-
go imeni fajla, hranyashchegosya v peremennoj A, kotoraya
mozhet soderzhat' ili ne soderzhat' "/":
expr $A : '.*/)' '|' $A
V poslednem primere sdleduet obratit' vnimanie na to,
chto operacii komandy expr, sovpadayushchie s metasivolami
yazyka upravleniya zadaniyami, vzyaty v apostrofy.
DOPOLNITELXNYE SSYLKI:
ed, sh, test
DIAGNOSTIKA:
Komanda expr vozvrashchaet sleduyushchie vyhodnye kody:
0 - esli vyrazhenie ne pustoe i ne ravno "0";
1 - esli vyrazhenie pustoe ili "0";
2 - dlya nevernyh vyrazhenij.
152
APK 00210-01 33 01-4
IMYA:
f77 - kompilyator s yazyka FORTRAN-77.
FORMAT:
f77 [klyuch] ... Fajl ...
OPISANIE:
Komanda f77 predstavlyaet soboj kompilyator s yazyka
FORTRAN-77. Raspoznayutsya parametry sleduyushchih tipov:
- Parametry, imena kotoryh zakanchivayutsya na ".f",
schitayutsya ishodnymi programmami na yazyke
FORTRAN-77.Oni kompiliruyutsya, i kazhdaya ob'ektnaya
programma pomeshchaetsya v fajl tekushchego spravochnika
pod imenem, kotoroe poluchaetsya iz imeni ishodno-
go fajla putem zameny ".f" na ".o";
- Parametry, imena kotoryh zakanchivayutsya na ".r"
ili ".e", schitayutsya ishodnymi programmami na
yazykah RATFOR ili EFL sootvetstvenno.Oni sperva
preobrazuyutsya sootvetstvuyushchim preprocessorom, a
zatem kompiliruyutsya s pomoshch'yu f77;
- Analogichno, parametry, imena kotoryh zakanchiva-
yutsya na ".c" ili ".s", schitayutsya ishodnymi prog-
rammami na yazyke Si ili assemblere.Oni kompili-
ruyutsya ili assembliruyutsya, sozdavaya fajly ".o".
Privedennye klyuchi imeyut to zhe samoe znachenie, chto i v
komande cc. Opisanie klyuchej, zadayushchih rezhimy zagruzki
soderzhitsya v ld:
153
APK 00210-01 33 01-4
-c Podavlyaet zagruzku i sozdaet fajl ".o" dlya kazh-
dogo ishodnogo fajla;
-d Kompilyator formiruet dopolnitel'nye komandy i
informaciyu v ob'ektnom fajle dlya simvol'nogo ot-
ladchika cdebug.
-p Podgotovit' ob'ektnye fajly dlya profilirovaniya
(sm. komandu prof);
-O Vyzvat' optimizator ob'ektnogo koda;
-S Skompilirovat' ukazannye programmy i ostavit'
assemblernyj vyhod v sootvetstvuyushchih fajlah s
suffiksami ".s". (fajly ".o" ne sozdayutsya);
-f Ispol'zovat' interpretator plavayushchej zapyatoj,
krome togo, podklyuchaetsya variant kompilyatora,
kotoryj mozhet rabotat' na mashinah bez processora
plavayushchej zapyatoj.
-o vyvod
Prisvaivaet vyhodnomu fajlu redaktora svyazej ld
imya "vyvod" vmesto "a.out";
Sleduyushchie klyuchi yavlyayutsya specificheskimi dlya f77:
-onetrip
Kompiliruet cikly do, kotorye, poluchiv upravle-
nie, vypolnyayutsya po krajnej mere odin raz. (V
FORTRANe-77 cikly do voobshche ne vypolnyayutsya, esli
verhnyaya granica men'she, chem nizhnyaya);
154
APK 00210-01 33 01-4
-u Ustanavlivaet tip neopredelennyh peremennyh
"undefined" vmesto ispol'zovaniya standartnyh
pravil yazyka FORTRAN;
-w Podavlyaet vse predupreditel'nye soobshcheniya. Esli
etot klyuch imeet vid "-w66", podavlyayutsya tol'ko
predupreditel'nye soobshcheniya otnositel'no sovmes-
timosti s yazykom FORTRAN-66. Klyuch "-wki" podav-
lyaet predupreditel'nye soobshcheniya o russkih
bukvah v identifikatorah;
-U Po umolchaniyu propisnye bukvy v identifikatorah i
v klyuchevyh slovah perevodyatsya v strochnye. Klyuch
"-U" blokiruet perevod, chto pozvolyaet razlichat'
propisnye i strochnye bukvy v identifikatorah.
Klyuchevye slova v etom sluchae zapisyvayutsya pro-
pisnymi bukvami;
-O<cifra>
Razreshit' vynesenie peremennyh ciklov na re-
gistry s cel'yu optimizacii. Odnovremenno vklyucha-
etsya rezhim "-O". <cifra> opredelyaet chislo re-
gistrov: 1 ili 2;
-I2 -I4 -Is
Flagi vliyayut na razmer celyh peremennyh: flag
"-I2" ustanavlivaet tip "integer" ekvivalentnym
"integer*2", "-I4" - "integer*4". Po umolchaniyu
ustanovlen rezhim "-I4" (v sootvetstvii so stan-
dartom peremennye tipov "integer" i "real"
155
APK 00210-01 33 01-4
dolzhny zanimat' odinakovuyu pamyat'). Rezhim "-Is"
razreshaet kompilyatoru v rezhime "-I4" vychislyat'
indeksy v predpolozhenii, chto oni nahodyatsya v di-
apazone chisel tipa "integer*2";
-v V etom rezhime kompilyator soobshaet ob nachale oche-
rednyh etapov translyacii(F77PASS, PASS1, AS, LD,
C), a takzhe vydaet versiyu kompilyatora;
-V Otladochnyj rezhim raboty kompilyatora. Raspechaty-
vayutsya komandy "shell", zapuskaemye v processe
translyacii vmeste so svoimi parametrami;
-T<simvol><imya-komponenty>
Zamenit' kakoj to prohod kompilyatora na ukazan-
nuyu programmu. Sluzhit dlya otladki kompilyatora
ili vyzova drugih ego versij. <simvol> oboznacha-
et sleduyushchie komponenty translyatora:
"0" - f77 prohod 0;
"1" - f77 prohod 1;
"2" - c1 (si-kompilyator, prohod 1);
"o" - c2 (optimizator koda);
"a" - as (assembler);
"l" - ld (redaktora svyazej);
"f" - golovnoj razdel (vmesto /lib/crt0);
"m" - makroprocessor m4.
Sleduet imet' v vidu, chto flag "-f" perenaznacha-
et komponenty "1" i "f".
156
APK 00210-01 33 01-4
-F Obrabotat' sootvetstvuyushchie fajly preprocessorami
RATFOR i EFL, pomestit' rezul'tat v fajl s suf-
fiksom ".f", no ne kompilirovat' rezul'tat;
-m Primenit' k kazhdomu fajlu ".r" ili ".e"
preprocessor m4 pered obrabotkoj ego preproces-
sorami RATFOR i EFL;
-ex Ispol'zovat' stroku "x" kak klyuch dlya EFL pri ob-
rabotke fajlov ".e";
-rx Pri obrabotke fajlov s suffiksom ".r" ispol'zo-
vat' stroku "x" kak klyuch dlya preprocessora
RATFOR.
Prochie parametry schitayutsya libo klyuchami zagruzchika,
libo ob'ektnymi programmami, sovmestimymi s f77, libo
bibliotekami programm. |ti programmy vmeste s rezul'-
tatami ukazannyh kompilyacij zagruzhayutsya (v zadannom
poryadke) dlya polucheniya vypolnyaemoj programmy s imenem
"a.out".
Kompilyator realizuet polnyj Fortran-77 s nekotorymi
rasshireniyami, sdelannymi kak dlya bolee effektivnogo
ispol'zovaniya |VM, tak i dlya luchshej sovmestimosti s
drugimi dialektami Fortrana. V versii kompilyatora dlya
|VM bez razdel'nyh adresnyh prostranstv komand i
dannyh (a k nim otnosyatsya pochti vse otechestvennye |VM,
za isklyucheniem |lektroniki-79) sushchestvuyut nekotorye
ogranicheniya:
157
APK 00210-01 33 01-4
- Ne realizovany rezhimy "-Is" i "-C";
- V konstantnyh vyrazheniyah (razmernosti massivov i
t.d.) mozhno ispol'zovat' tol'ko celye chisla i
vyrazheniya celogo tipa (no ne real'nye ili
kompleksnye);
- V spiskah vvoda/vyvoda i parametrah ciklov "do"
zapreshcheno ispol'zovanie vstroennyh arifmetiches-
kih funkcij i vyrazhenij, soderzhashchih operacii s
kompleksnymi chislami. |to trebovanie rasprostra-
nyaetsya ne na vse sluchai, no ego narushenie mozhet
privodit' k sboyu kompilyatora s diagnostikoj "ne
najden segment ...".
- Kompilyator rabotaet dovol'no medlenno, i ispol'-
zuet bol'shie rabochie fajly v spravochnike "/tmp".
- Pri rabote na |VM bez processora plavayushchej tochki
usilivayutsya kolichestvennye ogranicheniya na koli-
chestvo identifikatorov, plavayushchih konstant, ko-
lichestvo razmernostej massivov v programmah na
Fortrane, prichem prevyshenie etih ogranichenij
mozhet privodit' k diagnostike "out of memory" na
etape translyacii. Pri rabote na
|VM s processorom plavayushchej tochki eti ograniche-
niya umen'shayutsya.
YAzyk rasshiren po sravneniyu s Fortranom-77 sleduyushchim
obrazom:
158
APK 00210-01 33 01-4
- Vvedeny novye opisateli razmeshcheniya lokal'nyh pe-
remennyh: "static", "automatic", "undefined"
(dlya operatora "implicit");
- V kachestve ogranichitelya strok mozhno ispol'zovat'
kak odinochnye, tak i dvojnye kavychki.Pri etom
zakryvayushchaya kavychka dolzhna byt' takoj zhe, kak i
otkryvayushchaya;
- V strokah mozhno ispol'zovat' oboznacheniya uprav-
lyayushchih simvolov, prinyatye v yazyke Si: 0 ,
- Vveden operator vstavki teksta include 'imya-
fajla';
- Vvedeny bitovye, vos'merichnye i shestnadcaterich-
nye konstanty, naprimer:
b'001' - bitovye;
o'725' - vos'merichnye;
x'af5' - shestnadcaterichnye;
- Vvedeny operatory "accept" - ekvivalentno
"read", "type" - ekvivalentno "print", "byte" -
ekvivalentno "character", dlya sovmestimosti s
nekotorymi dialektami yazyka Fortran-4;
- Vvedeny funkcii "or", "and", "xor", "not" dlya
raboty s celymi chislami, funkcii "getarg" i
"iargc" dlya svyazi s sistemoj;
159
APK 00210-01 33 01-4
- Po umolchaniyu kanaly vvoda/vyvoda nastroeny sle-
duyushchim obrazom:
0 - stderr (kanal diagnostik);
5 - stdin (standartnyj vvod);
6 - stdout (standartnyj vyvod).
Ostal'nye kanaly svyazany s fajlami "fort.n", gde
"n" - nomer kanala. Mogut ispol'zovat'sya kanaly
s nomerami 0 - 9.
Sushchestvuet dva formata vhodnogo teksta. Esli v kolon-
kah 1-6 stoit simvol tabulyacii ili v kachestve priznaka
prodolzheniya ispol'zuetsya "&" v pervoj pozicii, dlina
vhodnoj stroki mozhet byt' proizvol'noj. Inache ispol'-
zuyutsya tol'ko pervye 72 simvola vhodnoj stroki. Simvol
"!" yavlyaetsya priznakom vnutristrochnogo kommentariya,
tekst mezhdu "!" i koncom stroki propuskaetsya. Odnako
"!" ne mozhet byt' edinstvennym simvolom v stroke.
Programmy na Fortrane-77 mogut ispol'zovat'sya sov-
mestno s programmami na Si. Operator Fortrana-77 call
x(a,b,c) ekvivalenten (esli a,b,c - prostye peremen-
nye) operatoru yazyka Si: x_(&a,&b,&c), to est' vneshnie
imena dopolnyayutsya simvolom podcherkivaniya v konce, a
parametry peredayutsya po adresu (esli eto ne simvol'nye
peremennye i ne funkcii). Podrobnee sm.opisanie yazyka
(86.24247-01 35 01).
DOPOLNITELXNYE SSYLKI:
160
APK 00210-01 33 01-4
prof, cc, ld, adb, cdeb.
DIAGNOSTIKA:
Diagnosticheskie soobshcheniya, vydavaemye neposredstvenno
kompilyatorom f77, ne trebuyut poyasnenij. Inogda mogut
vydavat'sya soobshcheniya zagruzchika. Nekotorye soobshcheniya
ob oshibke kompilyatora mogut vyzyvat'sya oshibkami v
programmah ili prevysheniem kolichestvennyh ogranichenij.
ZAMECHANIYA:
Pri rabote na |VM s malym ob'emom adresuemoj pamyati
voznikayut nekotorye ogranicheniya na dopustimyj razmer
programmy. Krome togo, neobhodimost' deleniya
kompilyatora na dinamicheski zagruzhaemye segmenty privo-
dit k uvelicheniyu vremeni ego raboty.
Otsutstvie na ustanovke komand plavayushchej arifmetiki ne
yavlyaetsya prepyatstviem dlya ispol'zovaniya kompilyatora,
no ne sleduet udivlyat'sya, esli vremya raboty programmy
rezko vozrastet (kak i v programmah na Si).
Bol'shie programmy (soderzhashie bol'shoe kolichestvo
metok) mogut ne projti cherez optimizator ob'ektnogo
koda (predupreditel'noe soobshchenie "optimizer out of
space"). Sistema vvoda/vyvoda yazyka Fortran dovol'no
velika i zanimaet okolo 050000(8) bajtov operativnoj
pamyati. Dlya umen'sheniya razmera programm i uskoreniya ih
raboty rekomenduetsya ispol'zovat' flagi "-O1 -I2"
vsegda, kogda eto vozmozhno.
161
APK 00210-01 33 01-4
Dlya otladki programm na Fortrane mogut ispol'zovat'sya
te zhe sredstva, chto i dlya programm na Si : otladchiki
"adb" i "cdeb". Otladchik "cdeb" ponimaet tipy peremen-
nyh v Fortrane-77.
FAJLY:
/usr/f77lib/f77pass0 - prohod 0;
/usr/f77lib/f77p1 - prohod 1;
/usr/f77lib/f77p1f - prohod 1 dlya mashin bez proces-
sora plavayushchej tochki;
/usr/f77lib/lib?77.a - biblioteki Fortran-77 na schete;
/tmp/f???.? - rabochie fajly.
162
APK 00210-01 33 01-4
IMYA:
fc - kompilyator FORTRAN.
FORMAT:
fc [ -c ] sfile1.f ... ofile1 ...
OPISANIE:
Pri vyzove kompilyatora mozhno zadavat' parametry treh
tipov:
- imena fajlov s suffiksom ` .f' yavlyayutsya ishodny-
mi tekstami na FORTRANE. Ob'ektnye fajly vyvo-
dyatsya (ili chitayutsya) v fajl s suffiksom ` .o';
- Drugie parametry (krome klyucha -c) rassmatrivayut-
sya libo kak klyuchi redaktora svyazej, libo kak
ob'ektnye programmy, obychno sozdavaemye na pred-
shestvuyushchih prohodah fc, libo kak sovmestimye s
FORTRANOM programmy. |ti programmy, vmeste so
skompilirovannymi programmami, obrabatyvayutsya
posle chego poluchaetsya ispolnyaemyj fajl s imenem
a.out;
- Zadanie klyucha -c i lyubaya sintaksicheskaya oshibka
pri translyacii privodit k tomu, chto sborka ne
vypolnyaetsya.
Privodim spisok razlichij mezhdu fc i standartnym
FORTRANOM-4:
1) V vyrazheniyah dopustimo proizvol'noe smeshenie
163
APK 00210-01 33 01-4
tipov. No v nastoyashchee vremya vozmozhny ne vse kombi-
nacii tipov. Dopustimy vse obychnye preobrazovaniya,
vklyuchayushchie celyj, dejstvitel'nyj, dvojnoj tochnosti
i kompleksnyj tipy;
2) Vozmozhny dva varianta operatora implicit:
implicit integer /i-n/, libo implicit integer
(i-n);
3) Vozmozhny tipy doublecomplex, logcal*1, integer*2,
i real*8;
4) Simvol "&" v pervoj pozicii ukazyvaet na to, chto
za nim sleduet prodolzhenie operatora;
5) Simvol "c" v pervoj pozicii ukazyvaet na to, chto
za nim sleduet kommentarij;
6) Vse operatory pishutsya strochnymi bukvami;
7) Ponyatie "sed'maya kolonka" ne ispol'zuetsya;
8) Pri ispol'zovanii specifikacii formata "g", vvod
proizvoditsya v "svobodnom" formate.Predshestvuyushchie
probely propuskayutsya, pervyj probel posle chisla
zakanchivaet pole;
9) Pri vvode, zapyataya yavlyaetsya razdelitelem cifrovyh
ili logicheskih polej;
10) Upravlenie perevodom stroki pri vyvode otsutstvu-
et;
164
APK 00210-01 33 01-4
11) Posledovatel'nost' iz N simvolov, zaklyuchennaya v
dvojnye kavychki ` " ', ekvivalentna Nh, za kotory-
mi sleduyut eti simvoly;
12) V operatore data simvol'naya stroka mozhet iniciali-
zirovat' massiv elementov ili posledovatel'nost'
elementov massiva;
13) CHislo blokov pamyati, zaprashivaemyh besformatnym
operatorom read, dolzhno sovpadat' s chislom, soder-
zhashchimsya v chitaemoj zapisi.
Dlya operatorov vvoda/vyvoda dostupny nomera ustrojstv
s 0 po 19. Ustrojstvo nomer N ukazyvaet na fajl
fortNN. (naprimer, ustrojstvu nomer 9 sootvetstvuet
fajl `fort09'). CHitaemye fajly dolzhny sushchestvovat'-
.Esli vyvod proizvoditsya v otsutstvuyushchij fajl, fajl
sozdaetsya. Ustrojstvo nomer 5 postoyanno zakrepleno za
standartnym fajlom vvoda. Ustrojstvo nomer 6 postoyanno
zakrepleno za standartnym fajlom vyvoda.
FAJLY:
a.out rezul'tat raboty;
f.tmp[123] vremennye fajly;
/usr/fort/fc1 sobstvenno kompilyator;
/lib/fr0.o start progona;
/usr/fort/filib.a biblioteka interpretatora ;
/usr/fort/libf.a vstroennye funkcii;
/usr/fort/liba.a sistemnaya biblioteka
165
APK 00210-01 33 01-4
DOPOLNITELXNYE SSYLKI:
ld, ierror, getarg, setfil
DIAGNOSTIKA:
Pri kompilyacii, diagnostika vydaetsya po-anglijski.
Vozmozhno ukazanie nomera oshibochnoj stroki i nomera
stroki ishodnoj programmy, v kotoroj imeetsya oshibka.
Pri vypolnenii programmy vydaetsya nomer oshibki:
1 neverno zadan argument funkcii log;
2 nesootvetstvie kolichestva argumentov v funkcii
amod;
3 nesootvetstvie kolichestva argumentov v funkcii
atan2;
4 lishnij argument pri cabs;
5 zadan slishkom bol'shoj eksponent v cexp;
6 nesootvetstvie kolichestva argumentov v funkcii
cmplx;
7 nesootvetstvie kolichestva argumentov v funkcii
dim;
8 lishnij argument pri exp ;
9 nesootvetstvie kolichestva argumentov v funkcii
idim;
10 nesootvetstvie kolichestva argumentov v funkcii
166
APK 00210-01 33 01-4
isign;
11 nesootvetstvie kolichestva argumentov v funkcii
mod;
12 nesootvetstvie kolichestva argumentov v funkcii
sign;
13 nedopustimyj argument pri sqrt;
14 nepravil'nyj perehod po vychislyaemomu goto;
15 subscript out of range;
16 perepolnenie pri vychislenii real**real;
17 (otricatel'nyj real)**real;
100 neverno zadan nomer ustrojstva vvoda/vyvoda;
101 nepravil'noe ispol'zovanie ustrojstva vvoda/vyvo-
da;
102 ne mozhem sozdat' fajl vyvoda;
103 ne mozhem otkryt' fajl vvoda;
104 konec fajla vvoda;
105 nevernyj simvol v operatore format;
106 operator format ne mozhet nachinat'sya s simvola `('
;
107 ne pustoj spisok vvoda/vyvoda pri otsutstvii spe-
167
APK 00210-01 33 01-4
cifikacij preobrazovaniya v formate;
108 lishnie skobki v formate ;
109 nepravil'noe opredelenie formata;
110 zapreshchennyj simvol v pole vvoda;
111 konec operatora format v h-specifikacii;
112 nevernyj argument pri setfil;
120 nevernyj argument pri ierror ;
999 zapreshchennoe preobrazovanie vvoda.
ZAMECHANIYA:
V dannoj versii kompilyatora ne realizovany sleduyushchie
vozmozhnosti:
operator-funkciya;
masshtabnyj mnozhitel' v specifikcii formata ope-
ratora vvoda;
operator backspace.
168
APK 00210-01 33 01-4
IMYA:
file - opredelit' tip fajla.
FORMAT:
file fajl ...
OPISANIE:
Komanda file vypolnyaet seriyu proverok dlya kazhdogo pa-
rametra i pytaetsya klassificirovat' ego. Esli okazyva-
etsya, chto fajl sostoit iz simvolov koda KOI-8, komanda
file issleduet pervye 512 bajtov i pytaetsya ugadat'
yazyk.
ZAMECHANIYA:
Dannaya komanda chasto sovershaet oshibki. V chastnosti,
ona chasto predpolagaet, chto komandnye fajly yavlyayutsya
programmami, napisannymi na yazyke Si.
169
APK 00210-01 33 01-4
IMYA:
find - poisk fajlov.
FORMAT:
find spisok_polnyh_imen vyrazhenie
OPISANIE:
Komanda find rekursivno ponizhaet ierarhiyu katalogov
dlya kazhdogo imeni puti v "spiske_polnyh_imen" (t.e.
odno ili neskol'ko polnyh imen) i ishchet fajly, kotorye
sootvetstvuyut bulevu "vyrazheniyu", zapisannomu s po-
moshch'yu elementov. V etih opisaniyah parametr n ispol'zu-
etsya kak desyatichnoe celoe, prichem +n oznachaet bolee
chem n, -n oznachaet menee chem n, a n oznachaet tochno n.
-name imya_fajla
Istina, esli parametr "imya-fajla" sootvetstvuet
tekushchemu imeni fajla. Mozhet ispol'zovat'sya obych-
nyj sintaksis parametrov interpretatora komand,
esli on skryt (bud'te ostorozhny s simvolami "[,
"?" i "*");
-perm vchis
Istina, esli status fajla tochno sootvetstvuyut
vos'merichnomu chislu "vchis" (sm. chmod). Esli
"vchis" imeet pered soboj znak minus, stanovyatsya
znachimymi bol'shee kolichestvo bitov statusa
(017777, sm. stat);
-type X
170
APK 00210-01 33 01-4
Istina, esli fajl imeet tip "X", gde "X"
predstavlyaet soboj odin iz simvolov b, c, d ili
f - dlya special'nogo blochnogo fajla; special'no-
go siMvol'nogo fajla; kataloga ili prostogo
fajla sootvetstvenno;
-links n
Istina, esli fajl imeet n svyazej;
-user imyap
Istina, esli fajl prinadlezhit pol'zovatelyu
"imyap" (registracionnoe imya ili chislovoj identi-
fikator pol'zovatelya);
-group imyag
Istina, esli fajl prinadlezhit gruppe "imyag" (imya
gruppy ili chislovoj identifikator gruppy);
-size n
Istina, esli dlina fajla sostavlyaet n blokov;
-inum n
Istina, esli nomer i-uzla fajla raven n;
-atime n
Istina, esli dostup k fajlu proizvodilsya v teche-
nie poslednih n dnej;
-mtime n
Istina, esli fajl modificirovalsya v techenie pos-
lednih n dnej;
171
APK 00210-01 33 01-4
-exec komanda
Istina, esli vypolnennaya "komanda" vozvrashchaet
kod vozvrata nul'. Konec komandy dolzhen byt'
oboznachen skrytoj tochkoj s zapyatoj ";". Para-
metr komandy "()" zamenyaetsya tekushchim imenem;
-ok komanda
Analogichno "-exec", za isklyucheniem togo, chto
sgenerirovannaya komanda zapisyvaetsya v stan-
dartnyj vyvod, zatem schityvaetsya standartnyj
vvod i komanda Vypolnyaetsya tol'ko v sluchae otve-
ta "y";
-print
Vsegda istina. Vyzyvaet pechat' tekushchego polnogo
imeni;
-newer fajl
Istina, esli tekushchij fajl byl modificirovan
pozdnee, chem ukazannyj "fajl".
|ti elementy mogut ob'edinyat'sya s pomoshch'yu sleduyushchih
operacij (operacii perechisleny v poryadke umen'sheniya
starshinstva):
1) Zaklyuchenie gruppy elementov i operacij v skobki
(skobki sluzhat special'nymi simvolami dlya in-
terpretatora komand i dolzhny byt' skryty);
2) Otricanie elementa ("!" predstavlyaet soboj unar-
nuyu operaciyu "net");
172
APK 00210-01 33 01-4
3) Konkatenaciya elementov (operaciya "-a" podrazume-
vaetsya neposredstvennym sosedstvom dvuh elemen-
tov);
4) Al'ternativnost' elementov ("-o" predstavlyaet
soboj operaciyu "ili").
PRIMER:
Sleduyushchaya komanda prednaznachaetsya dlya udaleniya vseh
fajlov s imenami "a.out", dostup k kotorym ne proizvo-
dilsya v techenie nedeli:
find / -name a.out -atime +7 -ok rm() ;
FAJLY:
/etc/passwd
/etc/group
DOPOLNITELXNYE SSYLKI:
sh, test
ZAMECHANIYA:
Sintaksis dannoj komandy slishkom slozhen.
173
APK 00210-01 33 01-4
IMYA
fls - polnoekrannaya (full screen) funkciya ls
FORMAT
fls [rezhim][fajl...]
OPISANIE
fls rasshiryaet funkcii komandy ls dlya ukazannyh koman-
doj file fajlov i vyvodit rezul'taty na polnyj ekran
7920. Tipichnye rezhimy ls (naprimer, -l, -t i t.d.)
takzhe mogut byt' ispol'zovany.
Dlya etoj komandy ispol'zuyutsya funkcional'nye klavishi:
pf1 vyvoditsya vspomogatel'nyj (help) ekran.
pf2 kursorom otmechaetsya fajl dlya stiraniya. Stroka
***DELETED*** podvoditsya k imeni sleduyushchego
fajla. Fajl ne budet unichtozhen bez nazhatiya kla-
vish pf3, pf9 ili pf12.
pf3 unichtozhaet fajly, otmechennye dlya stiraniya i za-
kanchivaet komandu (fls).
pf5 perenosit funkcii komandy ned na fajl, ukazannyj
kursorom.
pf6 isklyuchaet iz obrabotki fajl, otmechennyj kurso-
rom, t. e. protivopolozhno pf2.
pf7 sdvig vverh na 1/2 ekrana.
pf8 sdvig vniz na 1/2 ekrana.
174
APK 00210-01 33 01-4
pf9 izmenyaet oglavlenie i snova vypolnyaet komandu
ls.
pf11 vypolnyaet komandu file i vyvodit rezul'tat na
ekran.
pf12 menyaet oglavlenie na oglavlenie, ukazannoe kur-
sorom i vypolnyaet ls.
vyzov testa
nemedlenno zakanchivaet vypolnenie fls bez unich-
tozheniya fajlov.
Pol'zovatel' takzhe mozhet vvodit' komandy s pravoj
chasti ekrana; imya fajla, vysvechennoe s levoj storony
ekrana svyazyvaetsya s vvodimoj komandoj i peredaetsya
programme shell dlya vypolneniya komandy. Tol'ko klavishi
pf9 i pf12 mogut sluzhit' prichinoj povtornogo vypolne-
niya komandy ls.
DOPOLNITELXNYE SSYLKI
Dred - opisanie komandy.
175
APK 00210-01 33 01-4
IMYA:
from - posmotr poluchennoj pochty.
FORMAT:
from [ -s otpravitel'] [pol'zovatel']
OPISANIE:
Komanda from vydaet stroki zagolovkov pochty v vashem
pochtovom yashchike, chtoby pokazat', ot kogo ona poluchena.
Esli zadan klyuch -s, to vydaetsya informaciya tol'ko o
pochte, postupivshej ot pol'zovatelya, imya kotorogo opre-
deleno parametrom "otpravitel'".
Esli zadan parametr "pol'zovatel'", to komanda from
prosmatrivaet pochtovyj yashchik ukazannogo pol'zovatelya i
soobshchaet ot kogo postupila dlya nego pochta.
FAJLY:
/usr/spool/mail/*
DOPOLNITELXNYE SSYLKI:
mail
176
APK 00210-01 33 01-4
IMYA:
grep, egrep, fgrep - poisk v fajle po shablonu.
FORMAT:
grep [klyuch ... ] Vyrazhenie [fajl] ...
egrep [klyuch ... ] [vyrazhenie] [fajl] ...
fgrep [klyuch ... ] [stroki] [fajl]
OPISANIE:
Komandy semejstva grep osushchestvlyayut poisk strok vo
vhodnyh fajlah (po umolchaniyu - standartnyj vvod), so-
otvetstvuyushchih shablonu. Obychno kazhdaya obnaruzhennaya
stroka kopiruetsya v standartnyj vyvod. SHablony komandy
grep predstavlyayut soboj ogranichennye regulyarnye vyra-
zheniya po tipu ispol'zuemyh v komade ed. Ispol'zuetsya
kompaktnyj nedeterminirovannyj algoritm. SHablony ko-
mandy egrep yavlyayutsya polnymi regulyarnymi vyrazheniyami.
|ta komanda ispol'zuet bystryj determinirovannyj algo-
ritm i inogda trebuet eksponencial'nogo prostranstva.
SHablonami komandy fgrep yavlyayutsya fiksirovannye stro-
ki.Ona yavlyaetsya bystroj i kompaktnoj. Raspoznayutsya
sleduyushchie klyuchi:
-v Pechatayutsya vse stroki, krome sootvetstvuyushchih
shablonu;
-x Pechatayutsya tol'ko stroki, (tochno) sootvetstvu-
yushchie celikom (tol'ko fgrep);
-c Pechataetsya tol'ko schetchik sootvetstvuyushchih strok;
177
APK 00210-01 33 01-4
-l Pechatayutsya imena fajlov (po odnomu razu), v ko-
toryh imeyutsya sootvetstvuyushchie stroki, razdelen-
nye simvolami novoj stroki;
-n Kazhdoj stroke predshestvuet ee otnositel'nyj
nomer v fajle;
-b Kazhdoj stroke predshestvuet nomer bloka, v koto-
rom ona byla najdena. |to inogda polezno dlya na-
hozhdeniya nomerov diskovyh blokov po ih soderzha-
niyu;
-i Pri sravnenii ignoriruetsya registr simvolov
(drugimi slovami, verhnij i nizhnij registry schi-
tayutsya odinakovymi). (tol'ko grep);
-s Nemoj rezhim. Nichego ne pechataetsya (za isklyucheni-
em soobshchenij ob oshibkah). |to polezno dlya pro-
verki oshibochnogo sostoyaniya;
-w Vyrazhenie ishchetsya kak slovo (tol'ko grep);
-e vyrazhenie
To zhe, chto i prosto parametr "vyrazhenie", odnako
ispol'zuetsya teh sluchayah, kogda "vyrazhenie" na-
chinaetsya s "-";
-f fajl
Regulyarnoe vyrazhenie (egrep) ili spisok strok
(fgrep) berutsya iz fajla "fajl".
Vo vseh sluchayah imya fajla izobrazhaetsya tak, kak budto
178
APK 00210-01 33 01-4
imeetsya bolee odnogo vhodnogo fajla. Trebuetsya osto-
rozhnost' pri ispol'zovanii v "vyrazhenii" simvolov $,
*, [, ^, ! , (, ) i , tak kak oni yavlyayutsya znachimymi i
dlya yazyka upravleniya zadaniyami sh. Samym nadezhnym spo-
sobom yavlyaetsya zaklyuchenie vsego "vyrazheniya" v apostro-
fy '...'.
Komanda fgrep ishchet stroki, kotorye soderzhat odnu iz
posledovatel'nostej simvolov "stroki" (razdelennyh
simvolami novoj stroki).
Komanda egrep rabotaet s rasshirennymi regulyarnymi vy-
razheniyami. V sleduyushchem opisanii "simvol" ne vklyuchaet v
sebya simvol novoj stroki:
Simvol " otlichayushchijsya ot simvola novoj stroki,
sootvetstvuet etomu simvolu. Simvol ^ ($) soot-
vetstvuet nachalu (koncu) stroki. Simvol "." so-
otvetstvuet lyubomu simvolu. Odinochnyj simvol, ne
imeyushchij special'nogo znacheniya, sootvetstvuet
etomu simvolu;
Stroka simvolov, zaklyuchennaya v kvadratnye skobki
[ ], sootvetstvuet lyubomu odinochnomu simvolu iz
etoj stroki. Gruppy simvolov koda KOI-8 mogut
byt' sokrashchenno oboznacheny v vide "a-z0-9".
Simvol "]" mozhet vstrechat'sya tol'ko v kachestve
pervogo simvola stroki.
Literal "-" mozhet raspolagat'sya tol'ko v teh
179
APK 00210-01 33 01-4
mestah, gde on ne mozhet byt' sputan s ukazatelem
diapazona simvolov. Regulyarnoe vyrazhenie, za ko-
torym stoit simvol "*" ("+", "?"),opredelyayaet
posledovatel'nost' iz 0 ili bolee (1 ili bolee,
0 ili 1) sootvetstvij dlya etogo regulyarnogo vy-
razheniya. Dva ob'edinennyh regulyarnyh vyrazheniya
opredelyayut sootvetstvie dlya pervogo, za kotorym
sleduet sootvetstvie dlya vtorogo. Dva regulyarnyh
vyrazheniya, razdelennye simvolom "!" ili simvolom
novoj stroki, opredelyaet libo sootvetstvie dlya
pervogo, libo sootvetstviyu dlya vtorogo. Regulyar-
noe vyrazhenie, zaklyuchennoe v skobki, soot-
vetstvuet sootvetstviyu dlya etogo regulyarnogo vy-
razheniya..lin Poryadok starshinstva operacij na od-
nom i tom zhe urovne skobok sleduyushchij: [ ], zatem
*, + i ?, zatem konkatenaciya, zatem ! I simvol
novoj stroki.
DOPOLNITELXNYE SSYLKI:
ed, sed, sh
DIAGNOSTIKA:
Kod vozvrata raven:
0 - esli sootvetstviya byli najdeny,
1 - esli sootvetstviya ne byli obnaruzheny,
2 - esli imeetsya sintaksicheskaya oshibka ili fajly ne-
dostupny.
180
APK 00210-01 33 01-4
ZAMECHANIYA:
V ideal'nom sluchae dolzhna byla byt' tol'ko odna koman-
da grep, odnako neizvesten edinstvennyj algoritm, ko-
toryj harakterizuetsya dostatochno horoshim otnosheniem
pamyat'/vremya.
Dlina strok ogranichena 256 simvolami, bolee dlinnye
stroki usekayutsya.
181
APK 00210-01 33 01-4
IMYA:
head - vydacha pervyh strok fajlov
FORMAT:
head [-chislo] [fajl ...]
OPISANIE:
Komanda vydaet ukazannoe "chislo" pervyh strok kazhdogo
iz perechislennyh fajlov, ili (esli fajly ne zadany)
standartnogo fajla vvoda. Esli znachenie "chislo" opushche-
no, vydayutsya pervye desyat' strok.
DOPOLNITELXNYE SSYLKI:
tail
182
APK 00210-01 33 01-4
IMYA:
hed - shestnadcaterichnyj tekstovyj redaktor.
FORMAT:
hed [-e][-r][-t] fajl
OPISANIE:
hed - polnoekrannyj tekstovyj redaktor dlya ispol'zova-
niya na terminalah tipa 7920. Operand "fajl" ukazyvaet
imya redaktiruemogo fajla dannyh.
-e ispol'zuetsya dlya vyvoda v kode DKOI;
-r tol'ko dlya chteniya;
-t dlya ispol'zovaniya /tmp/hed xxxxx v kachestve bu-
fernogo fajla (dlya bol'shinstva fajlov).
hed operiruet s kopiej fajla v pamyati, esli ne zadan
rezhim "-t". V etom sluchae v kachestve bufernogo fajla
ispol'zuetsya /temp/hed xxxxx fajl. Dannye, izmenyaemye
na ekrane displeya, menyayutsya i v pamyati (ili v /tmp/hed
xxxxx fajle). Osnovnye komandy q(quit) ili e(edit) ne
menyayut fajl-original. Kogda menyayutsya shestnadcaterichnye
dannye, stiraemye metki konca fajla(eof) zapolnyayutsya
nulyami. Mozhno izmenyat' lyubye tekstovye dannye, pri
etom neizmenennye dannye sohranyayutsya. Stiranie eof v
tekste zapolnyaetsya nulyami.
OSNOVNYE KOMANDY:
Osnovnye komandy hed vvodyatsya s komandnoj stroki v
183
APK 00210-01 33 01-4
konce ekrana. Komanda t pereklyuchaet sostoyanie displeya.
Takih sostoyanij mozhet byt' dva: DKOI i KOI-8.
hhhhhhhh - izmenit' smeshchenie displeya na hhhhhhhh. Zna-
chenie dolzhno byt' dopolneno sleva nulyami do 8-mi zna-
kov; i vy ne smozhete rabotat' dalee poka ne budet dos-
tignut konec fajla. Znacheniem hhhhhhhh d.b. pravil'nye
shestnadcaterichnye dannye.
(+/-)hhhhhhhh - izmenit' smeshchenie displeya po otnosheniyu
k tekushchemu smeshcheniyu "+" ili "-" hhhhhhhh. Znachenie
hhhhhhhh dolzhno byt' sleva dopolneno nulyami. Rabota ne
mozhet byt' vozobnovlena tol'ko po koncu fajla do nacha-
la obrabotki sleduyushchego fajla.
/xxxxxxxx/c - razmestit' stroku shestnadcaterichnyh sim-
volov (do 28 shestnadcaterichnyh cifr). Esli stroka uka-
zana neverno, dannye budut preobrazovany v simvol'nyj
format i vyvedeny na ekran. Ostal'nye shestnadcaterich-
nye cifry zapolnyayutsya nulyami do konca stroki.
d - granica dvojnogo slova.
f - granica polnogo slova.
h - granica poluslova.
c - obrabotka dannyh kak simvol'nyh. (null) - granica,
vyrovnennaya na 1 bajt.
?hhhhhhhh?s - razmestit' stroku shestnadcaterichnyh sim-
volov (do 28 shestnadcaterichnyh cifr), dvigayas' v ob-
184
APK 00210-01 33 01-4
ratnom napravlenii. Esli stroka hhhhhhhh ukazana ne-
verno, dannye budut preobrazovany v simvol'nyj format
i vyvedeny na ekran kak stroka simvolov. Ostal'nye
shestnadcaterichnye cifry zapolnyayutsya nulyami do konca
stroki.
d - granica dvojnogo slova;
f - granica polnogo slova;
h - granica poluslova;
c - obrabotka dannyh kak simvol'nyh;
(null)
- granica, vyravnennaya na 1 bajt;
e (-e) (-r) imya fajla (tol'ko chtenie)
w[fajl]
- zapis' fajla;
q - vyhod iz redaktora bez zapisi izmenenij;
t - perekodirovka v DKOI ili KOI-8;
nodup - otmena vysvechivaniya povtoryayushchihsya strok;
dup - vysvechivanie vseh strok;
f[fajl]
- vysvechivanie ili smena imeni fajla;
$ - perehod na konechnyj blok fajla;
185
APK 00210-01 33 01-4
! - vypolnenie komand intertretatora;
xd, dx, od, do, xo, ox
- preobrazovaniya: vos'merichnye, desyatichnye,
shestnadcaterichnye;
insert/delete<poziciya> <chislo bajt>
- vstavka/udalenie.
FUNKCIONALXNYE KLAVISHI PF.
PF1 - spravka;
PF2 - peremeshchenie teksta s tekushchej stroki v pervuyu;
PF3 - zapis' rezul'tatov redaktirovaniya;
PF4,PF5
- povtor poiska;
PF9 - kopirovanie ekrana (dobavlenie) v fajl
hed.out;
PF10, PF11, (PF7, PF8)
- peremeshchenie na polnyj ekran (na polekrana)
vniz i vverh;
PF12 - ustanovit' kursor v nachalo;
vyzov testa
- vyhod iz redaktora.
DOPOLNITELXNYE SSYLKI:
xd
186
APK 00210-01 33 01-4
2
APK 00210-01 33 01-4
ANNOTACIYA
Dannyj dokument soderzhit komandy obshchego naznacheniya
sistemy demos, prednaznachennye dlya neposredstvennogo vyzo-
va pol'zovatelem. Privodimye v prilozhenii komandy otrazhayut
tekushchee sostoyanie standartnoj operativnoj spravochnoj doku-
mentacii sistemy. Vse komandy v dokumente uporyadocheny v
alfavitnom poryadke. Dlya udobstva raboty opisanie kazhdoj
komandy nachinaetsya s nobogo lista.
3
APK 00210-01 33 01-4
SODERZHANIE
1. KOMANDY OBSHCHEGO NAZNACHENIYA......................... 4
PRILOZHENIE............................................ 5
4
APK.00210-01 33 01-5
1. KOMANDY OBSHCHEGO NAZNACHENIYA
Struktura opisaniya kazhdoj komandy imeet sleduyushchij format:
imya: privodyatsya imena komand i kratkaya informaciya
o ih naznachenii;
format: privoditsya format komandy. Parametry, vzyatye
v kvadratnye skobki, mogut byt' opushcheny;
mnogotochie posle parametra ukazyvaet na to,
chto dannyj parametr mozhet byt' mnogokratno
povtoren.
opisanie: soderzhit podrobnoe opisanie komandy;
fajly: perechislyayutsya imena fajlov, kotorye ispol'-
zuyutsya dannoj komandoj;
diagnostika: perechislyayutsya diagnosticheskie soobshcheniya, ko-
torye mogut vydavat'sya v processe vypolneniya
dannoj komandy;
zamechaniya: privodyatsya ogranicheniya na oblast' primeneniya
komand;
dopolnitel'nye ssylki:
delayutsya ssylki na sopryazhennye komandy. V skobkah
privoditsya nomer razdela operativnogo rukovodstva.
Opisanie komand obshchego naznacheniya privedeno v prilozhenii.
5
APK.00210-01 33 01-5
PRILOZHENIE
6
APK.00210-01 33 01-5
IMYA:
join - operaciya dlya relyacionnyh baz dannyh.
FORMAT:
join [klyuchi] fajl1 fajl2
OPISANIE:
Komanda join formiruet v standartnom fajle vyvoda so-
edinenie dvuh otnoshenij, zadannyh strokami fajlov
"fajl1" i "fajl2". Esli vmesto fajla "fajl2" ukazano
"-", ispol'zuetsya standartnyj fajl vvoda.
"Fajl1" i "fajl2" dolzhny byt' otsortirovany v vozras-
tayushchej posledovatel'nosti v sootvetstvii s kodom KOI-8
po polyam, po kotorym oni dolzhny slivat'sya. (Obychno po
pervym polyam v kazhdoj stroke).
Dlya kazhdoj pary strok v fajlah "fajl1" i "fajl2", ko-
torye imeyut identichnye polya sliyaniya, sozdaetsya odna
vyhodnaya stroka. Vyhodnaya stroka obychno sostoit iz ob-
shchego polya, posle kotorogo sleduet ostal'naya chast'
ctpoki iz fajla "fajl1", a zatem - iz fajla "fajl2".
Polya obychno razdelyayutsya probelami, simvolami tabulyacii
i novoj stroki. V dannom sluchae neskol'ko razdelitelej
rassmatrivayutsya kak odin, a perednie razdeliteli
otbrasyvayutsya.
Raspoznayutsya sleduyushchie opcii:
-aN v dopolnenie k obychnomu vyvodu generiruetsya
7
APK.00210-01 33 01-5
stroka dlya kazhdoj neparnoj stroki v fajle N, gde
N ravno 1 ili 2;
-e S zamenyaet pustye vyhodnye polya strokoj "S";
-jN M sliyanie proizvoditsya po M-omu polyu fajla N. Esli
N otsutstvuet, v kazhdom fajle ispol'zuetsya M-oe
pole;
-o cpicok
kazhdaya vyxodnaya ctpoka coctoit iz polej, ukazan-
nyh v "spiske", kazhdyj element kotorogo imeet
vid N.M, gde N - eto nomer fajla, a M - nomer
polya;
-t C ispol'zovat' simvol "C" v kachestve razdelitelya
(simvola tabulyacii). Kazhdoe poyavlenie "C" v
stroke yavlyaetsya znachimym;
DOPOLNITELXNYE SSYLKI :
sort, comm, awk
ZAMECHANIYA:
Pri standartnom razdelitele polej sortiruyushchaya posledo-
vatel'nost' takaya zhe, kak v komande "sort -b"; s klyu-
chem -t posledovatel'nost' takaya zhe, kak pri prostoj
sortirovke.
Soglasheniya, prinyatye v komandah join, sort, comm, i
awk, nesovmestimy.
8
APK.00210-01 33 01-5
IMYA:
kill - zavershit' process.
FORMAT:
kill [-signom] identifikator-processa ...
OPISANIE:
Komanda kill posylaet signal zaversheniya (SIGTERM-15)
zadannym processam. Esli zadan parametr "signom",
dannyj signal posylaetsya vmesto signala zaversheniya.
|to svojstvo komandy kill mozhno ispol'zovat' dlya inte-
raktivnogo upravleniya hodom vypolneniya fonovyh proces-
sov ili dlya unichtozheniya processov ignoriruyushchih signal
zaversheniya. V lyubom sluchae komanda "kill -9" garanti-
ruet zavershenie processa.
V sootvetstvii s prinyatym soglasheniem, esli zadan
nomer processa 0, signal budet poslan vsem chlenam,
vhodyashchim v dannuyu gruppu processov. Zavershaemye pro-
cessy dolzhny prinadlezhat' tekushchemu pol'zovatelyu, esli
on ne yavlyaetsya super-pol'zovatelem.
Interpretator komand soobshchaet nomera asinhronnyh pro-
cessov, zapushchennyh posredstvom "&".
DOPOLNITELXNYE SSYLKI :
ps, kill, signal
9
APK.00210-01 33 01-5
IMYA:
label - obrabotka metok na ml.
FORMAT:
label [-w] [-i metka] imya
OPISANIE:
Komandoj label mozhno prochitat' i zapisat' metku mag-
nitnoj lenty, adresuemoj spec-fajlom v parametre
"imya".
Komanda raspoznaet metki ML v formate OS ES, gde metka
dolzhna raspolagat'sya v 6-ti bajtovom pole pervoj 80-ti
bajtovoj zapisi. |ta zapis' nachinaetsya simvolami VOL1,
za kotorymi sleduet metka ML i probely v ostavshejsya
chasti. Operaciya chteniya-zapis' metki soprovozhdaetsya pe-
rekodirovkoj iz koda DKOI v KOI-8 ili naoborot soot-
vetstvenno.
Komanda label bez opcionnyh parametrov privodit k
otobrazheniyu metki ML na terminale.
Opcii takovy:
-w zapisat' metku ML. V vide metki ispol'zuetsya imya
spec-fajla;
-i zapisat' metku ML. Metkoj lenty stanovitsya uni-
kal'noe imya iz polya "metka".
DOPOLNITELXNYE SSYLKI:
tape, tm
10
APK.00210-01 33 01-5
IMYA:
ld - redaktor svyazej
FORMAT:
ld [klyuch] fajl ...
OPISANIE:
Komanda ld ob'edinyaet neskol'ko ob'ektnyh programm v
odnu, razreshaet vneshnie ssylki i proizvodit poisk v
bibliotekah. V prostejshem sluchae zadayutsya neskol'ko
ob'ektnyh fajlov, i ld ob'edinyaet ih, sozdavaya
ob'ektnyj modul', kotoryj mozhet libo vypolnyat'sya, libo
yavlyat'sya vhodnym dlya posleduyushchih zapuskov ld (v pos-
lednem sluchae dolzhen zadavat'sya klyuch "-r" dlya sohrane-
niya razryadov peremeshcheniya). Rezul'tat raboty ld pomeshcha-
etsya v fajl s imenem a.out. |tot fajl delaetsya vypol-
nyaemym, esli v processe zagruzki ne bylo oshibok.
Ukazannye parametrami programmy ob'edinyayutsya v zadan-
noj posledovatel'nosti. Tochkoj vhoda dlya vyhodnogo mo-
dulya yavlyaetsya nachalo pervoj programmy (esli ne ispol'-
zuetsya opciya "-e").
Esli kakoj-libo iz parametrov predstavlyaet soboj bib-
lioteku, eta biblioteka prosmatrivaetsya tol'ko odin
raz v tot moment, kogda ona vstrechaetsya v spiske para-
metrov. Zagruzhayutsya tol'ko te programmy, kotorye opre-
deleny kak nerazreshennye vneshnie ssylki. Esli podprog-
ramma iz biblioteki ssylaetsya na druguyu podprogrammu
iz toj zhe biblioteki, to poslednyaya dolzhna nahoditsya v
11
APK.00210-01 33 01-5
biblioteke posle podprogrammy, kotoraya na nee ssylaet-
sya. Esli pervyj chlen biblioteki imeet imya __.SYMDEF,
to schitaetsya, chto on soderzhit katalog biblioteki, po-
luchennyj s pomoshch'yu komandy ranlib. V etom sluchae, vse
ssylki budut uspeshno razresheny.
Simvoly "_etext", "_edata" i "_end" ("etext", "edata"
i "end" v yazyke Si) zarezervirovany i, esli na nih
imeyutsya ssylki, ustanavlivayutsya na pervuyu yachejku nad
programmoj, pervuyu yachejku nad inicializirovannymi dan-
nymi i pervuyu yachejku nad vsemi dannymi sootvetstvenno.
Popytka pereopredelit' eti simvoly privodit k oshibke.
Komanda ld raspoznaet neskol'ko klyuchej. Za isklyucheniem
klyucha "-l", vse oni dolzhny nahoditsya pered imenami
fajlov:
-d Vyzyvaet opredelenie obshchej pamyati, dazhe esli us-
tanovlen flag "-r";
-a Sleduyushchij parametr rassmatrivaetsya kak imya tochki
vhoda zagpyzhaemoj ppogpammy; po ymolchaniyu
icpol'zyetcya yachejka 0;
-l |tot klyuch yavlyaetcya cokpashcheniem imeni biblioteki
/lib/libX.a, gde "X" - stroka. Esli ona ne su-
shchestvuet, komanda ld pytaetsya otyskat' bibliote-
ku /usr/lib/libX.a. Poskol'ku osushchestvlyaetsya
poick, mectonaxozhdenie "-l" yavlyaetcya
cyshchectvennym;
12
APK.00210-01 33 01-5
-n Privodit k tomu, chto pri vypolnenii vyhodnogo
fajla tekctovaya chact' bydet doctypnoj tol'ko dlya
chteniya i pazdelyat'cya mezhdy vcemi pol'zovatelyami,
vypolnyayushchimi etot fajl. Segment dannyh
peremeshchaetsya na granicu pervyh 4K, sleduyushchih za
tekctovym cegmentom;
-o Parametr "imya" posle opcii "-o" ispol'zuetsya v
kachestve imeni vyxodnogo fajla ld vmecto
"a.out";
-r Generiruet bity peremeshcheniya v vyhodnom fajle,
tak chto on mozhet uchastvovat' v posleduyushchem pro-
gone ld. |tot flag predotvrashchaet takzhe okoncha-
tel'noe opredelenie obshchih simvolov i podavlyaet
diagnosticheskie soobshcheniya otnositel'no
neoppedelennyx cimvolov;
-s Udalyaet iz rezul'tiruyushchego fajla tablicu simvo-
lov i bity peremeshcheniya s cel'yu ekonomii mesta
(cenoj snizheniya poleznosti otladchikov). |ta in-
formaciya mozhet byt' udalena takzhe s pomoshch'yu
komandy strip;
-u Rassmatrivaet sleduyushchij parametr kak simvol, ko-
toryj vvoditsya v kachestve neopredelennogo v tab-
licu simvolov. |to udobno dlya zagruzki celikom
iz biblioteki, poskol'ku pervonachal'no tablica
simvolov pusta, a dlya zagruzki pervoj ppogpammy
tpebyetcya nepazpeshennaya ccylka;
13
APK.00210-01 33 01-5
-X Sohranyaet lokal'nye simvoly, za isklyucheniem teh,
ch'i imena nachinayutsya s bukvy "$". |tot klyuch is-
pol'zuetsya komandoj cc dlya otbrasyvaniya sgeneri-
rovannyh pri obrabotke metok s sohraneniem pri
etom simvolov, lokal'nyh dlya programmy. B
tablicy cimvolov pomeshchayutcya tol'ko vneshnie
cimvoly;
-x Ne pomeshchaet lokal'nye (ne .globl) simvoly v vy-
hodnoj fajl. |ta opciya ekonomit opredelennoe
mesto v vyhodnom fajle.
FAJLY:
/lib/lib*.a biblioteki
/usr/lib/lib*.a dopolnitel'nye biblioteki
a.out vyhodnoj fajl
DOPOLNITELXNYE SSYLKI :
as, ar, cc, ranlib, ldover
14
APK.00210-01 33 01-5
IMYA:
learn - obuchenie rabote s sistemoj.
FORMAT:
learn [-sprav.] [kurs [urok [skor.]]]
OPISANIE:
Komanda learn predostavlyaet vozmozhnost' teoreticheskogo
i prakticheskogo obucheniya ispol'zovaniyu sistemy DEMOS c
pomoshch'yu |VM. Dlya nachala prosto vvedite "learn". Prog-
ramma budet zadavat' voprosy, chtoby vyyasnit', chego vy
hotite. Voprosov mozhno izbezhat', ukazav nazvanie "kur-
sa" obucheniya i nomer poslednego "uroka", kotoryj vy
vypolnili vo vremya predydushchego seansa. Vy mozhete takzhe
ukazat' parametr "skorost'", kotoryj vam postoyanno so-
obshchaet learn vmeste s nomerom vypolnennogo uroka. Esli
v kachestve "uroka" ukazan "-", komanda learn zaprashi-
vaet k kakomu uroku sleduet perejti; eto polezno pri
otladke kursov obucheniya.
V nastoyashchee vremya dostupny sleduyushchie "kursy":
keyboard
rabota s funkcional'noj klaviaturoj;
files osnovnye komandy OS DEMOS;
morefiles
prodolzhenie izucheniya komand OS DEMOS;
C programmirovanie na yazyke Si.
15
APK.00210-01 33 01-5
Special'naya komanda "poka" zavershaet seans svyazi s
learn.
Klyuch "-spravochnik" pozvolyaet rabotat' s kursami obuche-
niya, razmeshchennymi ne v standartnom spravochnike sistemy
learn.
FAJLY:
/mnt/learn
ZAMECHANIYA:
Osnovnoj effekt komandy learn, zaklyuchaetsya v tom, chto
obychenie ppovoditcya na modeli OC,na toj ee vepcii,
kotopaya cejchac ustanovlena na |VM. Vo vremya pervogo
seansa ochen' polezno, ocobenno dlya neppogpammictov,
ecli pyadom bydet naxodit'cya specialist po sisteme.
Pri sostavlenii nekotoryh urokov mogli byt' dopushcheny
oshibki, inogda komponenta v konkretnoj versii OS rabo-
taet po-drugomu; takie uroki mogut byt' propushcheny,
hotya trebuetsya opredelennyj navyk dlya togo, chtoby ot-
lichit' dopushchennuyu obuchaemym oshibku ot "raznochteniya"
komponent.
16
APK.00210-01 33 01-5
IMYA:
lex - generator programm leksicheskogo analiza.
FORMAT:
lex [-tvfn] [fajl]...
OPISANIE:
Komanda lex generiruet programmy, kotorye mogut is-
pol'zovat'sya dlya prostogo leksicheskogo analiza teksta.
Vhodnye fajly (po umolchaniyu - standartnyj vvod) soder-
zhat regulyarnye vyrazheniya, kotorye dolzhny otyskivat'sya,
i dejstviya, zapisannye na yazyke Si, kotorye dolzhny vy-
polnyat'sya pri nahozhdenii etih vyrazhenij.
Generiruetsya ishodnaya programma "lex.yy.s" na yazyke
Si, kotoraya dolzhna kompilirovat'sya sleduyushchim obrazom:
cc lex.yy.c -ll
Pri rabote etoj programmy proizvoditsya kopirovanie ne-
raspoznannyh porcij vhodnyh dannyh na vyhod, a takzhe
vypolnenie sootvetstvuyushchih dejstvij, opisannyh na yazy-
ke Si, dlya kazhdogo regulyarnogo vyrazheniya, kotoroe bylo
raspoznano.
Privedennaya nizhe programma na yazyke lex vypolnyaet pre-
obrazovanie iz verhnego registra v nizhnij, udalyaet
probely v konce strok i zamenyaet neskol'ko probelov na
odin:
%%
17
APK.00210-01 33 01-5
[A-Z] putchar(yytext[0]+'a'-'A');
[ ]+$
[ ]+ putchar(' ');
Komanda imeyut sleduyushchie parametry:
-t pomestit' rezul'tat v standartnyj fajl vyvoda, a
ne v fajl lex.yy.s;
-v vydat' razmery vnutrennih tablic;
-n ne vydavat' razmery tablic (ustanavlivaetsya po
umolchaniyu);
-f "bystraya" kompilyaciya, ne provoditsya upakovka re-
zul'tiruyushchih tablic. Goditsya tol'ko dlya malyh
programm.
-d vklyuchenie otladochnogo rezhima kompilyatora (klyuch
mozhet zadavat'sya tol'ko pri ispol'zovanii diag-
nosticheskogo varianta lex).
DOPOLNITELXNYE SSYLKI :
yacc
18
APK.00210-01 33 01-5
IMYA:
ln - sozdanie al'ternativnyh imen.
FORMAT:
ln imya1 [imya2] ...[imya n] [d2]
OPISANIE:
Odin i tot zhe fajl (vmeste so svoim razmerom, informa-
ciej, otnosyashchejsya k zashchite, i t.d.) mozhet imet' nes-
kol'ko al'ternativnyh imen. Ne sushchestvuet sposoba ot-
lichit' al'ternativnoe imya dannogo fajla ot ego ishod-
nogo imeni, lyubye izmeneniya v fajle vypolnyayutsya neza-
visimo ot imeni, pod kotorym izvesten etot fajl.
Komanda ln cozdaet dlya kazhdogo ykazannogo fajla "imya
1",...,"imya n" al'tepnativnoe imya v cyshchectvyyushchem
cppavochnike "d2". Ecli v kachectve argumentov komandy
zadany "imya 1" i "imya 2", to dlya sushchestvuyushchego fajla
"imya 1" cozdaetcya al'tepnativnoe imya "imya 2" v tekyshchem
kataloge.
ZAMECHANIYA:
Sozdavat' al'ternativnye imena spravochnikov, ili po-
meshchat' imena fajlov v raznyh fajlovyh sistemah zapre-
shchaetsya.
DOPOLNITELXNYE SSYLKI :
rm
19
APK.00210-01 33 01-5
IMYA:
lock - blokirovat' terminal.
FORMAT:
lock
OPISANIE:
Komanda lock zaprashivaet u pol'zovatelya parol', zatem
pechataet na terminale "Again" i blokiruet etot termi-
nal do teh por, poka parol' ne budet ukazan povtorno.
Esli pol'zovatel' zabudet parol', u nego net drugoj
vozmozhnosti, krome kak zaregistrirovat'sya gde-to v
drugom meste i zavershit' blokiruyushchij process.
20
APK.00210-01 33 01-5
IMYA:
logoff - vyhod iz sistemy DEMOS.
FORMAT:
logoff
OPISANIE:
Komanda logoff prednaznachena dlya vyhoda pol'zovatelya
iz sistemy DEMOS. Vyhod iz sistemy po komande logoff
proishodit iz lyubogo urovnya fajlovoj sistemy DEMOS.
Priznakom vyhoda iz sistemy DEMOS sluzhit izobrazhenie
na ekrane displeya "zastavki" s identifikaciej SVM ES.
21
APK.00210-01 33 01-5
IMYA:
look - poisk strok v otsortirovannom spiske.
FORMAT:
look [-df] stroka [fajl]
OPISANIE:
Komanda look prosmatrivaet otsortirovannyj "fajl" i
pechataet vse stroki, nachinayushchiesya simvolami "stroka".
Ispol'zuetsya dvoichnyj poisk. Opcii "d" i "f" vliyayut na
sravnenie, kak i v sort:
d "slovarnyj" poryadok: tol'ko bukvy, cifry, simvo-
ly tabulyacii i probely uchastvuyut v sravnenii;
f Ignoriruetsya registr simvolov. Bol'shie bukvy
schitayutsya pri sravnenii ravnymi malym.
DOPOLNITELXNYE SSYLKI :
sort, grep
22
APK.00210-01 33 01-5
IMYA:
lorder - opredelit' svyazi ob'ektnyh fajlov.
FORMAT:
lorder fajl ...
OPISANIE:
Vhodnaya informaciya predstavlyaet soboj odin ili nes-
kol'ko ob'ektnyh bibliotechnyh ili arhivnyh fajlov. V
rezul'tate raboty poluchaetsya spisok par imen ob'ektnyh
fajlov. Pervyj fajl pary ssylaetsya na vneshnij identi-
fikator, opredelennyj vo vtorom. Vyhod mozhet byt' ob-
rabotan komandoj tsort dlya nahozhdeniya takogo poryadka
razmeshcheniya modulej v biblioteke, kotoryj obespechivaet
odnoprohodnyj poisk dlya ld.
Sleduyushchaya stroka prednaznachena dlya postroeniya novoj
biblioteki iz sushchestvuyushchih fajlov ".o":
ar cr library `lorder *.o | tsort`
DOPOLNITELXNYE SSYLKI :
tsort, ld, ar
ZAMECHANIYA:
imena ob'ektnyh fajlov kak vnutri, tak i vne bibli-
otek, dolzhny imet' okonchanie ".o" - v protivnom sluchae
rezul'tat budet bessmyslennym.
23
APK.00210-01 33 01-5
IMYA:
lpq - vydat' coctoyanie ochepedi k ACPU.
FORMAT:
lpq
OPISANIE:
Komanda lpq vydaet sootoyanie ocheredi fajlov, ozhidayushchih
vyvoda na ACPU. Kazhdyj element ocheredi vydaetsya, s
ukazaniem imeni dannogo fajla, razmera fajla v simvo-
lah, vladel'ca i identifikacionnogo nomera. Identifi-
kator polezen dlya udaleniya zadannogo vhoda iz ocheredi
s pomoshch'yu komandy lprm.
FAJLY:
/usr/spool/lpd/*
DOPOLNITELXNYE SSYLKI :
lpr, lprm
24
APK.00210-01 33 01-5
IMYA:
lpr - postanovka fajla v ochered' na pechat'.
FORMAT:
lpr [-m] [-c] [-r] [-b zagolovok] [imya...]
OPISANIE:
Komanda lpr vyzyvaet zanesenie ukazannyh fajlov v oche-
red' na pechat'. Esli fajly ne ukazany, schityvaetsya
standartnyj fajl vvoda.
Klyuchi opredelyayut sleduyushchie rezhimy vypolneniya komandy:
-m posle zaversheniya pechati fajla pol'zovatelyu posy-
laetsya soobshchenie s pomoshch'yu mail;
-c po umolchaniyu, fajly, kotorye trebuetsya vydat' na
ACPU, kopiruyutsya v spravochnik /tmp/spool/lpd - v
etom rezhime v /tmp/spool/lpd poyavlyaetsya tol'ko
ssylka na fajl i kopirovaniya ne proishodit;
-r posle zaversheniya pechati ukazannye fajly udalyayut-
sya;
-b Po umolchaniyu, pered kazhdym fajlom pechataetsya za-
golovok, kotoryj soderzhit imya pol'zovatelya, za-
pustivshego dannuyu komandu i vremya vydachi. V etom
rezhime zagolovok dopolnyaetsya slovom, opredelen-
nym v parametre "zagolovok", kotoroe pechataetsya
bol'shimi bukvami v seredine lista. Pechataetsya ne
bolee 14 simvolov "zagolovka".
25
APK.00210-01 33 01-5
FAJLY:
/usr/spool/lpd/*
/usr/lib/lpd "demon" pechati
/usr/lib/lpf fil'tr dlya obrabotki
zagolovkov i podcherkivanij
DOPOLNITELXNYE SSYLKI :
lpq, lprm
ZAMECHANIYA:
V rezhime -c, pri nevozhmozhnosti zavesti ssylku (ishod-
nyj fajl nahoditsya v drugoj fajlovoj sisteme), fajl
vse-taki kopiruetsya.
V dannoj versii ne realizovano povtorenie pechati fajla
pri sboe ACPU.
26
APK.00210-01 33 01-5
IMYA:
lprm - udalit' fajl iz ocheredi k ACPU.
FORMAT:
lprm [identifikator...] [imya-fajla...] [vladel'ca...]
OPISANIE:
Komanda lprm udalyaet fajl iz ocheredi k ACPU. Identi-
fikatop, imya-fajla ili vladel'ca konkpetnogo fajla iz
ochepedi mozhno uznat' s pomoshch'yu komandy lpq. Vse fajly,
udovletvoryayushchie zadannomu usloviyu, budut udaleny.
Vydaetsya identifikator kazhdogo udalennogo iz ocheredi
fajla.
DOPOLNITELXNYE SSYLKI :
lpr, lpq
FAJLY
/usr/spool/lpd/*
27
APK.00210-01 33 01-5
IMYA:
ls - vydat' soderzhimoe spravochnika.
FORMAT:
ls [-1ACFRabcdfgilmnqrstux] imya ... l [klyuchi ls] imya
...
OPISANIE:
Dlya kazhdogo parametra, yavlyayushchegosya imenem spravochnika,
komanda ls vydaet spisok vhodyashchih v nego fajlov i
spravochnikov. Dlya kazhdogo parametra, yavlyayushchegosya
fajlom, komanda ls povtoryaet ego imya i soobshchaet vsyu
ostal'nuyu zatrebovannuyu informaciyu. Po umolchaniyu vy-
hodnaya informaciya sortiruetsya v alfavitnom poryadke.
Esli parametry ne ukazany, vydaetsya soderzhimoe tekushche-
go spravochnika.
Imeetsya tri vozmozhnyh formata vydachi. Vybiraemyj
format zavisit ot togo, napravlyaetsya li vyvod na ter-
minal, a takzhe mozhet upravlyat'sya s pomoshch'yu klyuchej.
Standartnym formatom dlya vydachi na terminal yavlyaetsya
vyvod v neskol'ko stolbcov .Esli vyvod proizvoditsya ne
na terminal, po umolchaniyu vydaetsya po odnomu imeni v
stroke. Krome togo, s pomoshch'yu klyucha "-m", mozhet zada-
vat'sya format, v kotorom imena fajlov vydayutsya poperek
stranicy, razdelyayas' simvolami ",". Pri vyzove "l" ,
po umolchaniyu podrazumevaetsya klyuch "-m".
Fajly, kotorye rassmatrivayutsya ne kak soderzhimoe spra-
vochnika, vsegda sortiruyutsya poperek stranicy, a ne v
28
APK.00210-01 33 01-5
stolbcah tablicy sverhu vniz. |to svyazano s tem, chto
imena otdel'nyh fajlov mogut imet' proizvol'nuyu dlinu.
Imeetsya neskol'ko klyuchej:
-l Vydavat' "v dlinnom formate", ukazyvaya dlya kazh-
dogo fajla ego rezhim, chislo svyazej, vladel'ca,
razmer v bajtah i vremya poslednej modifikacii.
Esli fajl yavlyaetsya special'nym fajlom, pole raz-
mera budet soderzhat' osnovnoj i dopolnitel'nyj
nomera ustrojstva;
-t Otsortirovat' v sootvetstvii so vremenem modifi-
kacii (vnachale s bolee pozdnim vremenem modifi-
kacii) vmesto obychnoj sortirovki po imenam;
-a Vydavat' vse imena (obychno imena fajlov nachina-
yushchiesya s tochki "." ne vydayutsya);
-s Ukazat' razmer dlya kazhdogo imeni v blokah, vklyu-
chaya bloki kosvennoj adresacii;
-d Esli parametr yavlyaetsya imenem spravochnika, vyda-
vat' tol'ko ego imya, a ne soderzhimoe (ispol'zu-
etsya glavnym obrazom s "-l" dlya polucheniya sosto-
yaniya spravochnika);
-r Izmenit' poryadok sortirovki na protivopolozhnyj,
chtoby poluchit' fajly v obratnom alfavitnom po-
ryadke ili vnachale bolee starye fajly;
-u Ispol'zovat' vremya poslednego dostupa vmesto
29
APK.00210-01 33 01-5
vremeni poslednej modifikacii pri sortirovke
(-t) ili raspechatke (-l);
-i Ukazat' v pervoj pozicii soobshcheniya dlya kazhdogo
perechislyaemogo fajla i-nomer;
-f Privodit k tomu, chto kazhdyj parametr interpreti-
ruetsya kak imya spravochnika, i raspechatyvaetsya
imya, nahodyashcheesya v kazhdoj pozicii. |tot klyuch
otklyuchaet klyuchi "-l", "-t", "-s" i "-r", i vklyu-
chaet klyuch "-a"; poryadok takoj, v kotorom imena
nahodyatsya v spravochnike;
-g Ukazat' identifikator gruppy vmesto identifika-
tora vladel'ca pri podrobnoj vydache ("-l");
-m Ispol'zuetsya potokovyj vyhodnoj format;
-1 Ispol'zuetsya format s odnim imenem v stroke,
naprimer, pri vyvode na terminal;
-c Ispol'zuetsya vyvod v neskol'ko stolbcov, napri-
mer, pri vyvode v fajl ili v potok (pipe);
-q Vyzyvaet pechat' simvola "?" vmesto neizobrazha-
emyh simvolov v imenah fajlov; eto obychno proiz-
voditsya, esli vyhodnym ustrojstvom yavlyaetsya ter-
minal;
-x Vyzyvaet sortirovku sostoyashchej iz neskol'kih
stolbcov vydachi poperek stranicy, a ne sverhu
vniz; takoj format yavlyaetsya standartnym, esli
30
APK.00210-01 33 01-5
poslednim simvolom imeni, s kotorym byla vyzvana
programma, yavlyaetsya "x";
-A Bydayutcya vce imena tekyshego kataloga (analogichno
"-a") krome '.' i '..' ;
-F K imenam spravochnikov pri vydache dobavlyaetsya
simvol "/"; imena ispolnyaemyh fajlov dopolnyayutsya
simvolom "*";
-R Rekursivnaya vydacha soderzhimogo vseh vstrechayushchih-
sya spravochnikov.
Status fajla, vydavaemyj pri ukazanii klyucha "-l", sos-
toit iz 11 simvolov, kotorye interpretiruyutsya sledu-
yushchim obrazom. Pervym simvolom yavlyaetsya:
d Esli dannyj fajl yavlyaetsya spravochnikom;
b Esli dannyj fajl yavlyaetsya special'nym fajlom
blochnogo tipa;
c Esli dannyj fajl yavlyaetsya special'nym fajlom
simvol'nogo tipa;
- Esli dannyj fajl yavlyaetsya prostym fajlom.
Sleduyushchie 9 simvolov interpretiruyutsya kak tri nabora
po tri simvola v kazhdom. Pervyj nabor ukazyvaet polno-
mochiya vladel'ca, sleduyushchij - polnomochiya drugih pol'zo-
vatelej toj zhe gruppy, i poslednij - polnomochiya vseh
prochih pol'zovatelej. V kazhdom takom nabore tri simvo-
31
APK.00210-01 33 01-5
la ukazyvayut polnomochiya sootvetstvenno dlya chteniya, za-
pisi i vypolneniya dannogo fajla kak programmy. Dlya
spravochnika polnomochie "vypolnenie" interpretiruetsya
kak razreshenie poiska v kataloge zadannogo fajla. Pol-
nomochiya zadayutsya sleduyushchim obrazom:
r esli fajl dostupen dlya chteniya;
w esli fajl dostupen dlya zapisi;
x esli fajl dostupen dlya vypolneniya;
- esli ukazannyj vid dostupa ne razreshaetsya.
Simvol polnomochiya dlya vypolneniya gruppoj ukazyvaetsya
kak "s", esli etot fajl imeet rezhim ustanovki identi-
fikacii gruppy; analogichno, simvol polnomochiya dlya vy-
polneniya pol'zovatelem ukazyvaetsya kak "s", esli fajl
imeet rezhim ustanovki identifikacii pol'zovatelya.
Poslednim simvolom rezhima (obychno "x" ili "-") yavlyaet-
sya "t", esli ustanovlen bit rezhima 1000.
Kogda raspechatyvayutsya razmery fajlov v spravochnike,
vydaetsya obshchee kolichestvo blokov, vklyuchaya bloki kos-
vennoj adresacii.
ZAMECHANIYA:
Simvoly tabulyacii i novoj stroki v imenah fajlov
rassmatrivayutsya kak pechataemye simvoly.
Predpolagaetsya, dlina stroki ustrojstva vyvoda ravna
32
APK.00210-01 33 01-5
80 poziciyam. SHirina stolbcov sostavlyaet obychno 15 sim-
volov. Esli zadany klyuchi "-i" ili "-s", shirina sostav-
lyaet 20 simvolov. Esli odnovremenno zadany klyuchi "-i"
i "-s", shirina sostavlyaet 25 simvolov. V lyubom slu-
chae, esli zadan klyuch "-l" ili "-n", predpolagaetsya,
chto v stroke pomeshchaetsya informaciya tol'ko ob odnom
imeni.
Ustanovka klyuchej v zavisimosti ot togo, yavlyaetsya li
vyvodnoe ustrojstvo terminalom, nezhelatel'na, tak kak
ls -s ! lpr
znachitel'no otlichaetsya ot
ls -s
Vybor shiriny stolbcov yavlyaetsya ves'ma ogranichennym dlya
terminalov, kotorye mogut vypolnyat' tabulyaciyu.
33
APK.00210-01 33 01-5
IMYA:
m4 - makroprocessor.
FORMAT:
m4 [fajl ...]
OPISANIE:
Makroprocessor m4 prednaznachen dlya ispol'zovaniya v ka-
chestve preprocessora yazykov FORTRAN, Si i drugih.Kazh-
dyj iz fajlov, ukazannyh v parametrah, obrabatyvaetsya
po ocheredi. Esli parametry otsutstvuyut ili parametrom
yavlyaetsya "-", schityvaetsya standartnyj fajl vvoda.
Obrabotannyj tekst zapisyvaetsya v standartnyj fajl vy-
voda.
Format makrovyzova:
imya(par1,par2,...,parN)
Simvol "(" dolzhen sledovat' neposredstvenno posle ime-
ni makroopredeleniya. Esli simvol "(" otsutstvuet posle
imeni, schitaetsya, chto makro ne imeet parametrov. Pri
perechislenii parametrov nachal'nye probely, simvoly ta-
bulyacii i novoj stroki, ne zaklyuchennye v kavychki, ig-
noriruyutsya. Imena makroopredelenij mogut sostoyat' iz
bukv, cifr i simvolov podcherkivaniya "_", prichem pervym
simvolom ne dolzhna byt' cifra.
Mozhno otkazat'sya ot nemedlennoj podstanovki znacheniya
makroimeni. Dlya etoj celi sootvetstvuyushchie posledova-
tel'nosti simvolov zaklyuchayutsya v apostrofy (`'). Pri
34
APK.00210-01 33 01-5
kazhdom prosmotre makroprocessora odin uroven' apostro-
fov udalyaetsya.
Kogda obnaruzhivaetsya imya makroopredeleniya, ego para-
metry posledovatel'no obrabatyvayutsya. Vychislenie mak-
roopredelenij obychno prodolzhaetsya pri prosmotre para-
metrov, i lyubye zapyatye ili pravye skobki, kotorye
mogut poyavit'sya v znachenii vlozhennogo vyzova, imeyut
takoe zhe dejstvie, kak i ishodnyj tekst. Posle podsta-
novki znachenie makro pomeshchaetsya obratno vo vhodnoj
potok i prosmatrivaetsya povtorno.
Vozmozhno zadanie svoih makro s sovpadayushchimi imenami,
odnako posle etogo ih nachal'nyj smysl teryaetsya. Kak
pravilo vstroennye makro vydayut znachenie "pusto" (esli
v opisanii ne skazano inache). Kratkoe opisanie vstro-
ennyh makroopredelenij m4, kotorye predstavlyayut soboj
vhodnoj yazyk makroprocessora:
define(imya,znachenie)
Vtoroj parametr ustanavlivaetsya v kachestve zna-
cheniya makroimeni, ukazanogo v pervom parametre.
Kazhdoe upotreblenie $n v zameshchayushchem tekste, gde
n - cifra, zamenyaetsya na n-yj parametr. Parametr
0 predstavlyaet soboj imya makro. Otsutstvuyushchie
parametry zamenyayutsya pustymi strokami;
undefine(`imya')
Udalyaet opredelenie makro, ukazannogo v paramet-
re;
35
APK.00210-01 33 01-5
ifdef(`imya',param2,param3)
Esli pervyj parametr opredelen, znacheniem yavlya-
etsya vtoroj parametr, esli net - tretij. Esli
tretij parametr otsutstvuet, znacheniem yavlyaetsya
pusto;
changequote(l,r)
Zamenyaet simvoly ekranirovaniya (apostrofy) na
pervyj i vtoroj parametry. Vyzov changequote bez
parametrov vosstanavlivaet ishodnye znacheniya
(t.e. `');
divert(n)
Makroprocessor obsluzhivaet do 10 vyvodnyh
fajlov, pronumerovannyh ot 0 do 9. Konechnyj
vyvod predstavlyaet soboj konkatenaciyu etih
fajlov v poryadke ih nomerov. Po umolchaniyu infor-
maciya vydaetsya v standartnyj fajl vyvoda (fajl s
nomerom 0). Makro divert zamenyaet tekushchij vyhod-
noj fajl na ukazannyj v parametre (cifrovaya
stroka). Vyvod, kotoryj napravlyaetsya v fajl no-
merom, ne vhodyashchim v diapazon 0-9, otbrasyvaet-
sya;
undivert(n1,n2 ...)
Vyzyvaet nemedlennyj vyvod teksta iz vseh uka-
zannyh fajlov (ili iz vseh fajlov, esli paramet-
ry otsutstvuyut). Tekst mozhet byt' vyveden v dru-
goj fajl. Pri vyvode informaciya v fajle unichto-
36
APK.00210-01 33 01-5
zhaetsya;
divnum
Vozvrashchaet znachenie tekushchego vyhodnogo fajla;
dln Schityvaet i otbrasyvaet simvoly do sleduyushchego
simvola novoj stroki vklyuchitel'no;
ifelse(a,b,c,d)
Imeet tri ili bolee parametrov. Esli pervyj pa-
rametr sovpadaet so vtorym, tretij parametr is-
pol'zuetsya v kachestve znacheniya. Esli eto ne tak
i esli imeetsya bolee chetyreh parametrov, dannyj
process povtoryaetsya dlya parametrov 4, 5, 6 i 7.
V protivnom sluchae znacheniem yavlyaetsya libo chet-
vertaya stroka, libo, esli ona otsutstvuet -
pusto;
incr(chislo)
Vozvrashchaet znachenie svoego parametra, uvelichen-
noe na 1. Ishodnaya stroka cifr rassmatrivaetsya
kak desyatichnoe chislo;
eval(vyrazhenie)
Vydaet znachenie ukazannogo vyrazheniya. Pri vychis-
lenii ispol'zuetsya 32-razryadnaya celaya arifmeti-
ka. Operacii vklyuchayut v sebya +, -, *, /, %, ^
(vozvedenie v stepen'), otnosheniya, skobki;
len(stroka)
Vozvrashchaet kolichestvo simvolov v "stroke";
37
APK.00210-01 33 01-5
index(stroka_1,stroka_2)
Vozvrashchaet nomer simvola "stroki_1" s kotorogo
nachinaetsya vhozhdenie "stroki_2". Schet simvolov
nachinaetsya s nulya. Esli v "stroke_1" vhozhdenij
"stroki_2" ne obnaruzhenno, vozvrashchaetsya -1;
substr(s,i,n)
Vozvrashchaet podstroku stroki "s", nachinayushchuyusya s
i-toj pozicii, dlinoj v "n" simvolov. Schet sim-
volov nachinaetsya s nulya. Esli tretij parametr
otsutstvuet, schitaetsya, chto podstroka prodolzha-
etsya do konca stroki "s";
translit(s,f,t)
Perekodiruet stroku "s", zamenyaya simvoly, vhodya-
shchie v stroku "f", sootvetstvuyushchimi simvolami
stroki "t";
include(imya)
Zamenyaetsya na soderzhimoe fajla s ukazannym "ime-
nem";
sinclude(imya)
Analogichno include, za isklyucheniem togo, chto es-
li fajl nedostupen, diagnostika ne vydaetsya i
process raboty makroprocessora ne preryvaetsya;
syscmd(komanda)
Vypolnyaet ukazannuyu "komandu" sistemy. Znachenie
ne vozvrashchaetsya;
38
APK.00210-01 33 01-5
maketemp(...XXX...)
Zamenyaet simvoly XXX identifikatorom tekushchego
processa;
errprint(stroka_1,stroka_2,...)
Vydaet ukazannye stroki v standartnyj fajl diag-
nosticheskih soobshchenij;
dumpdef(imya_1,imya_2...)
Vydaet tekushchie imena i opredeleniya dlya ukazannyh
parametrov (ili vse, esli parametry otsutstvu-
yut);
39
APK.00210-01 33 01-5
IMYA:
mail - pochtovaya sluzhba.
FORMAT:
mail [+] [-i] [adresat]...
mail [+] [-i] -f fajl
OPISANIE:
komanda mail prednaznachena dlya realizacii obmena soob-
shcheniyami mezhdu pol'zovatelyami posredstvom apparata
"pochtovyh yashchikov". Pochtovym yashchikom pol'zovatelya, obych-
no yavlyaetsya fajl v spravochnike /usr/spool/mail s ime-
nem analogichnym imeni pol'zovatelya, pod kotorym tot
zaregistrirovan v sisteme. Primenyaya komandu mail,
pol'zovatel' poluchaet vozmozhnost' prosmotret'
sobstvennyj "pochtovyj yashchik" ili dopolnit' chuzhoj svoim
soobshcheniem. Esli v komande ne ukazan "adresat", vyda-
etsya pochta pol'zovatelya, soobshchenie za soobshcheniem, v
poryadke "poslednim prishel - pervym vyshel". Kogda pere-
chisleny "adresaty", mail schityvaet standartnyj vvod do
konca fajla ili stroki, soderzhashchej lish' ".", i dobav-
lyaet ego k "pochtovomu yashchiku" kazhdogo "adresata". V na-
chale soobshcheniya ukazyvaetsya imya otpravitelya, data
otpravleniya i "pochtovyj shtempel'". V kachestve "pochto-
vogo shtempelya" ispol'zuyutsya stroki, nachinayushchiesya sim-
volom ">". Obychno, "adresat" - imya pol'zovatelya, pod
kotorym tot zaregistrirovan v sisteme, esli neobhodimo
otpravit' soobshchenie pol'zovatelyu nahodyashchemusya v drugoj
sisteme (na drugoj mashine), to pered parametrom "adre-
40
APK.00210-01 33 01-5
sat" sleduet ukazat' "!imya_sistemy" .
Klyuchi zadayut sleduyushchie rezhimy raboty komandy:
+ izmenit' poryadok prosmotra soobshchenij na rezhim
"pervym prishel - pervym vyshel";
-i ignorirovat' preryvaniya;
-f ispol'zovat' sleduyushchij za nim parametr v ka-
chestve imeni fajla, al'ternativnogo "pochtovomu
yashchiku".
Vo vremya prosmotra "pochtovogo yashchika", posle pechati
ocherednogo soobshcheniya programma vydaet na terminal znak
voprosa "?" i ozhidaet komandu. Dopustimy sleduyushchie ot-
vety:
<return>
perejti k sleduyushchemu soobshcheniyu bez izmeneniya so-
derzhimogo pochtovogo yashchika;
d udalit' soobshchenie i perejti k sleduyushchemu;
p povtorno napechatat' tekushchee soobshchenie;
- vernut'sya k predydushchemu soobshcheniyu;
s[fajl]...
sohranit' soobshchenie v fajlah s ukazannymi imena-
mi (po umolchaniyu, ispol'zuetsya fajl mbox v rabo-
chem spravochnike pol'zovatelya);
41
APK.00210-01 33 01-5
w[fajl]...
sohranit' soobshchenie bez zagolovka v fajlah s
ukazannymi imenami (po umolchaniyu - mbox);
m[pol'zovatel']...
napravit' soobshchenie perechislennym pol'zovatelyam
(po umolchaniyu - sebe);
EOT (<konec peredachi> - <cntrl-D>)
pomestit' neprosmotrennuyu pochtu obratno v pochto-
vyj yashchik i zavershit' prosmotr;
q to zhe, chto i EOT;
!komanda
vyzvat' interpretator komand SHELL i vypolnit'
ukazannuyu komandu.
Lyuboj drugoj otvet privedet k vydache privedennogo vyshe
spiska komand. Soobshchenie o nalichii pochty vydaetsya pri
registracii.
FAJLY:
/etc/passwd svedeniya o pol'zovatelyah sis-
temy
/usr/spool/mail/* "pochtovye yashchiki"
mbox sohranennaya pochta
/tmp/ma* vremennye fajly
dead.letter ne otpravlennyj po pochte tekst
42
APK.00210-01 33 01-5
pif -mes [a-i]*.1 > ai1.f mx
-ES -P ant.ai ai1.f > ai1.fcps
pif -mes [j-z]*.1 > jz1.f mx
-ES -P ant.jz jz1.f > jz1.fcps
rm *.f
43
APK.00210-01 33 01-5
IMYA:
make - programma sborki komponent.
FORMAT:
make [-f komandnyj_fajl] [klyuch] ... Fajl ...
OPISANIE:
Komanda make vypolnyaet sborku komponent iz nabora is-
hodnyh fajlov. Rezul'tatom raboty make mozhet yavlyat'sya
gotovaya programma, poluchaemaya iz mnozhestva fajlov, ot-
chet ili stat'ya, sozdavaemaya s pomoshch'yu sistemy podgo-
tovki dokumentacii, biblioteka funkcij i t.p.
Dlya ispol'zovaniya make, razrabatyvaetsya special'naya
programma sborki, pod upravleniem kotoroj vypolnyayutsya
vse neobhodimye dejstviya dlya polucheniya trebuemogo re-
zul'tata. Programma sborki (komandnyj fajl make) so-
derzhit informaciyu o porozhdaemyh ob'ektah, derevo zavi-
simostej, opisyvayushchee iz kakih fajlov poluchaetsya
ob'ekt, i komandy yazyka SHELL dlya sozdaniya ob'ektov.
Imya komandnogo fajla ukazyvaetsya posle klyucha "-f", es-
li vmesto parametra "komandnyj_fajl" ukazan "-", is-
pol'zuetsya standartnyj fajl vvoda. Pri zadanii v vyzy-
vayushchej stroke neskol'kih fajlov s klyuchami "-f" v ka-
chestve opisaniya ispol'zuetsya konkatenaciya zapisej v
ukazannyh fajlah.
Komponenta sozdaetsya, esli ona ne sushchestvuet, ili esli
hotya by odin iz fajlov (ot kotoryh ona pryamo ili kos-
44
APK.00210-01 33 01-5
venno zavisit) izmenyalsya posle poslednej sborki.
Komandnyj fajl soderzhit nabor operatorov, kotorye op-
redelyayut usloviya i pravila porozhdeniya komponent. Ope-
rator nachinaetsya so spiska imen trebuemyh ob'ektov,
posle kotorogo stoit odin ili dva simvola "dvoetochie"
i, vozmozhno, sleduet spisok ishodnyh fajlov. Tekst
posle tochki s zapyatoj, a takzhe vse posleduyushchie stroki,
nachinayushchiesya simvolom tabulyacii, predstavlyayut soboj
komandy yazyka SHELL, kotorye dolzhny vypolnyat'sya dlya
sozdaniya komponenty.
Pri zapisi imen porozhdaemyh i trebuyushchihsya fajlov do-
pustimo ispol'zovanie regulyarnyh vyrazhenij (ispol'zu-
yutsya metasimvoly "*", "[-]", "?", interpretaciya koto-
ryh sovpadaet s prinyatoj v yazyke SHELL; ).
Ostatok stroki, nachinayushchijsya simvolom "#", schitaetsya
kommentariem i ne rassmatrivaetsya programmoj make.
Sleduyushchij komandnyj fajl soderzhit pravila sozdaniya
programmy "pgm", poluchaemoj v rezul'tate sborki fajlov
"a.o" i "b.o", kotorye, v svoyu ochered', zavisyat ot
fajlov "a.c", "b.c" i "incl.h".
pgm: a.o b.o
cc a.o b.o -o pgm
a.o: incl.h a.c
cc -c a.c
b.o: incl.h b.c
45
APK.00210-01 33 01-5
cc -c b.c
V dannom primere kazhdyj iz porozhdaemyh ob'ektov zavi-
sit ot sushchestvovaniya dvuh komponet, i pri otsutstvii
ili v rezul'tate modifikacii lyuboj iz nih, dlya
polucheniya ob'ekta vypolnyayutsya odinakovye dejstviya.
Sushchestvuet vozmozhnost' zadaniya neskol'kih pravil po-
rozhdeniya dlya odnogo i togo zhe ob'ekta. V etom sluchae,
v kachestve razdelitelya mozhno ispol'zovat' dva simvola
"dvoetochie":
aa :: x.c y.c
echo OBNOVLEN FAJL NA YAZYKE SI
aa :: x.y
echo OBNOVLEN FAJL NA YAZYKE YACC
Komandnyj fajl mozhet soderzhat' vyzovy makroperemennyh,
dlya zadaniya znachenij kotoryh ispol'zuyutsya stroki vida:
imya = znachenie
Pri vypolnenii komandnogo fajla vse konstrukcii:
$(imya)
ili
${imya}
zameshchayutsya "znacheniem" sootvetstvuyushchej peremennoj
"imya". Esli "imya" sostoit iz odnogo simvola, to v mak-
rovyzove skobki mozhno ne ispol'zovat'.
Znacheniya makroperemennyh mozhno ustanavlivat' ne tol'ko
46
APK.00210-01 33 01-5
v samom komandnom fajle, no i pri vyzove make. Esli
odna i ta zhe makroperemennaya odnovremenno opredelyaetsya
i v komadnom fajle i v vyzove, ispol'zuetsya znachenie,
zadannoe pri vyzove. Tak, esli komandnyj fajl soderzhit
stroki:
TEXT = ZADANIE 2
progr:
echo ${TEXT}
zapusk komandy make bez parametrov privedet k vydache
teksta "ZADANIE 2". Esli etot zhe komandnyj fajl zapus-
kaetsya komandoj:
make "TEXT = PRIMER 1"
v rezul'tate ee raboty budet polucheno soobshchenie
"PRIMER 1".
Sushchestvuet neskol'ko special'nyh makroperemennyh, zna-
cheniya kotoryh ustanavlivayutsya samoj programmoj make:
$* Imya sozdavaemoj komponenty bez suffiksa;
$? Spisok modificirovannyh fajlov, privodyashchih k vy-
polneniyu komand dannogo pravila;
$@ Polnoe imya sozdavaemogo fajla;
$< Spisok ishodnyh fajlov;
$$ Simvol "$".
47
APK.00210-01 33 01-5
Neobhodimyj ob'ekt mozhno poluchit' iz kakogo-libo is-
hodnogo fajla odnim iz chetyreh sposobov:
- neposredstvenno zadat' imena i pravila porozhde-
niya;
- vvesti obshchee pravilo dlya imen s ukazannymi suf-
fiksami;
- zadat' pravilo ".DEFAULT";
- ispol'zovat' standartnye soglasheniya o preobrazo-
vaniyah.
V operatore, neposredstvenno ukazyvayushchem metod poluche-
niya odnogo fajla iz drugogo, yavno zadayutsya polnye ime-
na porozhdaemogo i ishodnogo fajlov. Naprimer, poluche-
nie fajla "a.K" iz "a.M":
a.K : a.M
mv a.M a.K
V obshchem pravile ukazyvayutsya suffiksy i zadayutsya koman-
dy, preobrazuyushchie fajly s odnim suffiksom v fajly s
tem zhe imenem, no drugim suffiksom. Naprimer, pravilo
polucheniya fajlov s suffiksom ".o" iz fajlov okanchiva-
yushchihsya na ".s" mozhet imet' vid:
.c.o :
cc -c $<
Krome togo, v komandnom fajle neobhodimo ukazat', chto
48
APK.00210-01 33 01-5
".o" i ".c" yavlyayutsya suffiksami i zadat' poryadok pri-
meneniya obshchih pravil preobrazovaniya (dlya sluchaev,
kogda neskol'ko obshchih pravil opisyvayut perehod ot
raznyh ishodnyh fajlov k odnomu porozhdennomu). |to de-
laetsya s pomoshch'yu operatora:
.SUFFIXES: .o .c
Esli v spiske porozhdaemyh ob'ektov pri pravile ukazana
konstrukciya ".DEFAULT", to eto pravilo vypolnyaetsya
vsyakij raz, kogda programma make ne imeet informacii o
metode polucheniya trebuemogo fajla. Naprimer, esli v
komandnom fajle zadano pravilo:
.DEFAULT:
cp dummy $@
budut sozdavat'sya vse nedostayushchie fajly (kazhdyj iz ko-
toryh poluchaetsya s pomoshch'yu kopirovaniya fajla dummy).
Vo vremya raboty komandnogo fajla mozhno ispol'zovat'
nabor standartnyh pravil polucheniya komponent, imeyushchij-
sya v sisteme. Tak, pervyj iz privedennyh primerov
mozhno bylo zapicat' znachitel'no kopoche:
pgm: a.o b.o
cc a.o b.o -o pgm
a.o b.o: incl.h
Pri ispol'zovanii standartnyh pravil, sushchestvuet voz-
mozhnost' izmeneniya imen nekotoryh kompilyatorov i klyu-
49
APK.00210-01 33 01-5
chej, s kotorymi oni vyzyvayutsya. Imena kompilyatorov za-
dayutsya makroperemennymi:
AS Assembler (as);
CC Si-kompilyator (cc);
RC Fortran-77 (f77);
LEX Generator leksicheskih analizatorov Lex (lex);
YACC Kompilyator kompilyatorov Yacc (yacc).
Klyuchi standartnyh kompilyatorov yavlyayutsya znacheniyami
sleduyushchih makroperemennyh:
CFLAGS Klyuchi Si-kompilyatora (cc);
FFLAGS Klyuchi kompilyatora Fortran-77 (f77);
LFLAGS Klyuchi generatora programm leksicheskogo ana-
liza lex;
YFLAGS Klyuchi kompilyatora yacc;
LOADLIBES Spisok ispol'zuemyh bibliotek.
Pri ispol'zovanii standartnyh pravil ispol'zuetsya sle-
duyushchee soglashchenie o traktovke suffiksov:
.out Fajl vyvoda;
.o Ob'ektnyj fajl;
.c Ishodnyj fajl na yazyke Si;
50
APK.00210-01 33 01-5
.f Ishodnyj fajl na Fortrane;
.e Ishodnyj fajl na yazyke Efl;
.r Ishodnyj fajl na Ratfore;
.y Ishodnyj fajl na Yacc;
.l Ishodnyj fajl na Lex;
.s Ishodnyj fajl na Assemblere;
.p Ishodnyj fajl na Paskale.
Dlya vypolneniya kazhdoj komandnoj stroki SHELL zapuska-
etsya otdel'nyj process. Poetomu pri ispol'zovanii mak-
roperemennyh trebuetsya prinimat' special'nye mery,
naprimer, oformlyat' gruppy komand, ispol'zuyushchie obshchie
makro v vide sostavnoj komandy SHELL.
Esli v komandnom fajle ne byl zadan special'nyj vhod
".SILENT", ili pervym simvolom komandy ne byl simvol
"@", stroka pri vypolnenii raspechatyvaetsya. Krome
togo, pri vyzove make dlya ustanovki rezhima podavleniya
vydachi ispolnyaemyh komand mozhno ispol'zovat' klyuch
"-s".
Sozdanie fajla s pomoshch'yu programmy make mozhet byt'
sluchajno ili prednamerenno prervano. Esli nedodelannyj
fajl ne yavlyaetsya spravochnikom, i v spiske porozhdaemyh
ob'ektov naryadu s imenem etogo fajla ukazano special'-
noe imya ".PRECIOUS", fajl unichtozhaetsya.
51
APK.00210-01 33 01-5
Sushchestvuet vozmozhnost' raboty s fajlami zapisannymi v
arhiv. Pri etom ocenivaetsya vremya poslednej modifika-
cii fajla (a ne vremya sozdaniya arhiva ili vremya zapisi
fajla v arhiv). Imya nahodyashchegosya v arhive fajla mozhet
ukazyvat'sya, kak v spiske porozhdaemyh ob'ektov, tak i
sredi imen, ot kotoryh zavisit sozdanie ob'ektov.
Krome imeni fajla, pri rabote s bibliotekami ob'ektnyh
modulej, mozhno ukazyvat' imena funkcij. Dlya togo, chto-
by otlichat' imena komponent, zapisannyh v arhiv, is-
pol'zuetsya special'naya forma zapisi imen:
a(b) oznachaet, chto fajl s imenem "b" hranitsya v
arhive "a";
a((_b)) oznachaet vneshnee imya funkcii "_b" v arhive
"a".
Esli kod zaversheniya kakoj-libo komandy ne raven nulyu,
vypolnenie programmy make obychno prekrashchaetsya. Oshibka
takogo roda mozhet byt' proignorirovana. S etoj cel'yu v
spisok porozhdaemyh ob'ektov vvoditsya special'noe imya
".IGNORE", libo pered vypolnyaemoj komandoj ukazyvaetsya
defis "-".
Komanda make mozhet byt' vyzvana so sleduyushchimi klyuchami:
-d Otladochnyj rezhim. V etom rezhime vydaetsya dopolni-
tel'naya informaciya o vypolnenii komandnogo fajla;
-f Sleduyushchij parametr yavlyaetsya imenem komandnogo
fajla; po umolchaniyu - "makefile" ili "Makefile".
52
APK.00210-01 33 01-5
Esli etot klyuch ne zadan, a v spravochnike pri-
sutstvuyut oba imeni, v kachestve komandnogo fajla
ispol'zuetsya "makefile";
-i Rezhim ignorirovaniya oshibochnyh kodov zaversheniya
komand. |kvivalentno special'nomu makro
".IGNORE:";
-k Esli kod vozvrata komandy ne raven nulyu, prekra-
tit' obrabotku tekushchej vetvi, i perejti k obra-
botke sleduyushchih vetvej dereva, ne zavisyashchih ot
tekushchej vetvi;
-n Raspechatat', no ne vypolnyat' komandy, prednazna-
chennye dlya sborki programmy;
-p Raspechatka versii ishodnogo dereva;
-q Osushchestvlyaet proverku ukazannogo ob'ekta i
vozvrashchaet kod zaversheniya 0, esli on trebuet mo-
difikacii, ili -1 v protivnom sluchae;
-r |kvivalentno zadaniyu makro ".SUFFIXES:" bez spis-
ka. Otmenyaet dejstvie standartnyh pravil porozhde-
niya;
-s |kvivalentno special'nomu makro ".SILENT:" - ot-
mena raspechatki komandnyh strok;
-S Prervat' vypolnenie programmy pri oshibochnom za-
vershenii kakoj-libo komandy;
53
APK.00210-01 33 01-5
-t Obnovit' datu modifikacii ob'ekta, ne vypolnyaya
kakih-libo komand;
DOPOLNITELXNYE SSYLKI :
sh, touch
ZAMECHANIYA:
Komandy, kotorye vypolnyayutsya yazykom upravleniya zadani-
yami (naprimer cd), ne dolzhny perehodit' na novuyu
stroku v komandnom fajle.
54
APK.00210-01 33 01-5
IMYA:
mesg - otkryt' ili zakryt' priem soobshchenij.
FORMAT:
mesg [n] [y]
OPISANIE:
Komanda mesg s parametrom "n" zapreshchaet drugim pol'zo-
vatelyam proizvodit' zapis' na terminal dannogo pol'zo-
vatelya. Komanda mesg s parametrom "y" vosstanavlivaet
eto pravo. Pri otsutstvii parametrov komanda mesg in-
formiruet o tekushchem sostoyanii bez izmeneniya ego.
DOPOLNITELXNYE SSYLKI :
write
DIAGNOSTIKA:
Kod vozvrata raven 0, esli soobshcheniya mogut prinimat'-
sya, 1, esli net, i 2 pri oshibke.
55
APK.00210-01 33 01-5
IMYA:
mkdir - sozdat' spravochnik.
FORMAT:
mkdir imyaspr ...
OPISANIE:
Komanda mkdir cozdaet ykazannye cppavochniki co
ctatycom 755. Standartnye vhody "." dlya samogo spra-
vochnika i ".." dlya porozhdayushchego spravochnika sozdayutsya
avtomaticheski.
Dlya vypolneniya komandy mkdir trebuetsya pravo zapisi v
porozhdayushchem kataloge.
DOPOLNITELXNYE SSYLKI :
rm
DIAGNOSTIKA:
Komanda mkdir vydaet kod vozvrata 0, esli vse spravoch-
niki byli uspeshno sozdany. V protivnom sluchae pechata-
etsya diagnostika i vozvrashchaetsya nenulevoj kod.
56
APK.00210-01 33 01-5
IMYA:
mv - peremestit' fajl.
FORMAT:
mv fajl1 fajl2
mv fajl ... spravochnik
OPISANIE:
Komanda mv peremeshchaet "fajl1" v "fajl2".
Esli "fajl2" uzhe sushchestvuet, on udalyaetsya pered pere-
pisyvaniem "fajla1". Esli status fajla "fajl2" zapre-
shchaet zapis', no pol'zovatelyu razreshena zapis' v dannyj
spravochnik, komanda mv pechataet pezhim i cchityvaet
ctpoky iz ctandaptnogo vvoda, ecli eta stroka nachina-
etsya simvolom "y", proishodit perezapis'. V ostal'nyh
sluchayah proishodit vyhod iz mv.
Vtoraya forma komandy privodit k tomu, chto odin ili
neskol'ko "fajlov" perepisyvayutsya v "spravochnik" pod
svoimi ishodnymi imenami.
Komanda mv otkazyvaetsya perepisyvat' fajl v samogo
sebya.
DOPOLNITELXNYE SSYLKI :
cp, chmod
ZAMECHANIYA:
Esli "fajl1" i "fajl2" raspolozheny v raznyh fajlovyh
sistemah, komanda mv dolzhna skopirovat' fajl i udalit'
57
APK.00210-01 33 01-5
ishodnyj. V etom sluchae imenem vladel'ca stanovitsya
imya kopiruyushchego processa, a svyazi s drugimi fajlami
(al'ternativnye imena) teryayutsya.
Spravochniki mogut peremeshchat'sya tol'ko v predelah odnoj
i toj zhe fajlovoj sistemy.
ZAMECHANIYA:
Komanda mv dolzhna by imet' flag "-f" analogichno koman-
de rm, dlya podavleniya zaprosa na podtverzhenie v slu-
chae, esli celevoj fajl sushchestvuet i zashchishchen ot zapisi.
58
APK.00210-01 33 01-5
IMYA:
newgrp - smenit' identifikator gruppy.
FORMAT:
newgrp identifikator_gruppy
OPISANIE:
Komanda newgrp izmenyaet identifikator gruppy vydavshego
ee pol'zovatelya, analogichno komande login. V rezul'ta-
te vypolneniya komandy ostaetsya zaregistrirovannym etot
zhe pol'zovatel', ego tekushchij spravochnik ne izmenyaetsya,
odnako opredelenie polnomochij dostupa k fajlam proiz-
voditsya na osnovanii novogo identifikatora gruppy;
Parol' zaprashivaetsya v tom sluchae, esli gruppa imeet
parol', a sam pol'zovatel' - net;
Komanda newgrp vypolnyaetsya interpretatorom komand.
DOPOLNITELXNYE SSYLKI :
login
59
APK.00210-01 33 01-5
IMYA:
nice, nohup - zapustit' komandu poniziv prioritet.
FORMAT:
nice [-chislo] komanda [parametry]
nohup komanda [parametry]
OPISANIE:
Komanda nice vypolnyaet ukazannuyu komandu s nizkim pri-
oritetom. Esli prisutstvuet parametr "chislo", priori-
tet chislenno uvelichivaetsya (bol'shie chisla oznachayut
men'shie prioritety) na etu velichinu do granichnogo zna-
cheniya 20. Znachenie "chisla" po umolchaniyu ravno 10.
Super-pol'zovatel' mozhet vypolnyat' komandy s priorite-
tom vyshe obychnogo posredstvom ukazaniya otricatel'nogo
prioriteta, naprimer, "--10".
Nohup vypolnyaet ukazannuyu komandu, ignoriruya signaly
ostanova i zaversheniya ot upravlyayushchego terminala. Pri-
oritet uvelichivaetsya na 5. Komanda nohup dolzhna byt'
vyzvana s "&" dlya togo, chtoby predotvratit' ee reakciyu
na preryvanie ili prisvoenie eyu vvodimoj informacii
sleduyushchego pol'zovatelya, kotoryj registriruetsya na
etom zhe terminale.
DOPOLNITELXNYE SSYLKI :
sh, csh
DIAGNOSTIKA:
Komanda nice vozvrashchaet kod vozvrata vhodyashchej v nee
60
APK.00210-01 33 01-5
komandy.
ZAMECHANIYA:
Komandy nice i nohup yavlyayutsya specificheskimi dlya sh.
Esli vy ispol'zuete csh, komandy, vypolnyaemye s "&",
avtomaticheski zashchishchayutsya ot signalov ostanova ot up-
ravlyayushchego terminala. Imeetsya vstroennaya komanda
nohup, kotoraya obespechivaet zashchitu ot zaversheniya, od-
nako ona ne pereadresovyvaet vyvod v fajl nohup.out.
Komanda nice vstroena v csh s sintaksisom, neskol'ko
otlichayushchimsya ot opisannogo zdes' - "nice+10" ustanav-
livaet polozhitel'nyj prioritet, a "nice-10" ustanavli-
vaet ispol'zuemyj super-pol'zovatelem otricatel'nyj
prioritet.
61
APK.00210-01 33 01-5
IMYA:
nm - vydat' spisok imen.
FORMAT:
nm [-agnopru] [fajl ...]
OPISANIE:
Komanda nm raspechatyvaet spisok imen (tablicu simvo-
lov) kazhdogo iz ukazannyh v spiske parametrov
ob'ektnyh fajlov. Esli parametr predstavlyaet soboj ar-
hiv, budet raspechatyvat'sya tablica simvolov dlya kazhdo-
go ob'ektnogo fajla arhiva. Esli "fajl" ne ukazan,
raspechatyvayutsya simvoly iz fajla "a.out".
Kazhdomu simvolicheskomu imeni predshestvuet ego znachenie
(probely, esli ono ne opredeleno) i odna iz bukv u
(neopredelennoe), a (absolyutnoe), t (simvol tekstovogo
segmenta), d (simvol segmenta dannyh), b (simvol seg-
menta bss) ili c (obshchij simvol). Esli simvol yavlyaetsya
lokal'nym (ne vneshnim), eta bukva pechataetsya na nizhnem
registre. Vyvod sortiruetsya po alfavitu.
Vozmozhny sleduyushchie opcii:
-g Vydavat' tol'ko global'nye (vneshnie) simvoly;
-n Otsortirovat' po znacheniyam, a ne po alfavitu;
-o Ukazyvat' imya fajla ili elementa arhiva v kazhdoj
stroke vyvoda, a ne tol'ko odin raz;
-p Ne sortirovat', pechatat' v poryadke tablicy sim-
62
APK.00210-01 33 01-5
volov;
-r Otsortirovat' v obratnom poryadke;
-u Pechatat' tol'ko neopredelennye simvoly.
DOPOLNITELXNYE SSYLKI :
ar, ar, a.out
63
APK.00210-01 33 01-5
IMYA:
od - formatirovanie informacii prosmotra.
FORMAT:
od [-format] [file] [[+]offset[.][b]
[label]]
OPISANIE:
Komanda od vydaet v standartnyj fajl vyvoda soderzhimoe
fajla "file" v ukazannom formate. Esli format ne
zadan, to vyvod proizvoditsya po formatu "o". Informa-
ciya vydaetsya s ukazannogo mesta (po umolchaniyu - s na-
chala fajla) do konca fajla.
Pervyj parametr ("format") mozhet soderzhat' sleduyushchie
klyuchi:
a Interpretirovat' bajty kak simvoly koda KOI-8.
Negraficheskie simvoly oboznachayutsya ih imenami,
vse ostal'nye bajty, znacheniya kotoryh ne vhodyat v
kod KOI-8, vydayutsya v vos'merichnom vide. Esli od-
novremenno zadan klyuch "p", to bajty, znacheniya ko-
toryh imeyut chetnyj paritet - podcherkivayutsya. Esli
zadan klyuch "P" - podcherkivayutsya simvoly imeyushchie
nechetnyj paritet;
b Vydavat' vos'merichnye znacheniya bajtov;
c Interpretirovat' bajty kak simvoly koda KOI-8.
Nekotorye negraficheskie simvoly oboznachayutsya tak
zhe, kak i v yazyke Si: - pusto; - novaya
64
APK.00210-01 33 01-5
stroka; vozvrat na shag;7 - vozvrat karet-
ki; - perevod formata; - tabulyaciya. Vse os-
tal'nye bajty, znacheniya kotoryh ne vhodyat v kod
KOI-8, vydayutsya v vos'merichnom vide;
d Vydavat' slova (short) v vide desyatichnyh chisel
bez znaka;
f Vydavat' dlinnye slova (long) v vide veshchestvennyh
chisel;
h Vydavat' slova (short) v vide shestnadcatirichnyh
chisel bez znaka;
i Vydavat' slova (short) v vide desyatichnyh chisel so
znakom;
l Vydavat' dlinnye slova (long) v vide desyatichnyh
chisel so znakom;
o Vydavat' slova (short) v vide vos'merichnyh chisel;
s[N] Interpretirovat' posledovatel'nost' bajtov kak
tekstovuyu stroku, zavershayushchuyusya simvolom "pusto"
(' '). CHislo N zadaet minimal'nuyu dlinu prosmat-
rivaemoj posledovatel'nosti, po umolchaniyu N ravno
3;
v Vydavat' vse znacheniya. Po umolchaniyu, vmesto pos-
ledovatel'nosti povtoryayushchihsya strok vydaetsya
simvol '*' v pervoj pozicii;
65
APK.00210-01 33 01-5
w[N] |tot klyuch opredelyaet dlya kazhdoj vhodnoj stroki
chislo obrabatyvaemyh bajt. Esli etot klyuch ne
ukazan, to iz kazhdoj vhodnoj stroki schityvaetsya
16 bajt. Esli N opushcheno ispol'zuetsya 32 bajta;
x Vydavat' slova (short) v vide shestnadcaterichnyh
chisel.
Parametr "file" opredelyaet imya fajla, kotoryj dolzhen
byt' prosmotren. Esli etot parametr ne zadan, ispol'-
zuetsya standartnyj fajl vvoda.
Parametr "offset" zadaet smeshchenie v fajle, otkuda
dolzhna nachinat'sya vydacha. |tot parametr obychno
rassmatrivaetsya kak vos'merichnoe chislo bajtov. Esli
posle nego stoit ".", smeshchenie interpretiruetsya v de-
syatichnom kode. Esli posle nego stoit "b", smeshchenie in-
terpretiruetsya v blokah po 512 bajt. Esli parametr
"file" otsutstvuet, parametru "offset" dolzhen pred-
shestvovat' znak "+".
Argument "label" yavlyaetsya psevdo-adresom dlya pervogo
prosmatrivaemogo bajta. On zadaetsya v skobkah "()"
posle zadaniya smeshcheniya i imeet tot zhe sintaksis, chto i
smeshchenie.
DOPOLNITELXNYE SSYLKI :
adb
ZAMECHANIYA:
Imya fajla ne dolzhno nachinat'sya s simvola "+". Dopuska-
66
APK.00210-01 33 01-5
etsya tol'ko odno imya fajla.
67
APK.00210-01 33 01-5
IMYA:
opr - vyvod fajlov DEMOS v oblast' nakopleniya MVM.
FORMAT:
opr [-h] [-u idvm] [-v idvm] [-p kopiya] [-n imya_faj-
la] [-c klass] [-t teg] [-T zagolovok] [fajl
...]
Opisanie:
Komandoj opr obespechivaetsya vyvod fajlov DEMOS v oche-
red' fajlov nakopleniya.
Rezhimy fajlov nakopleniya dlya dannyh ustrojstv ustanav-
livayutsya komandoj MVM SPOOL, odnako komanda opr izme-
nyaet eti rezhimy na osnovanii svoih parametrov dlya vvo-
dimyh fajlov.
Sleduyushchie rezhimy fajlov nakopleniya menyayutsya komandoj
opr:
-h eta opciya ukazyvaet, chto dlya pechatayushchego ustroj-
stva ustanavlivaetsya rezhim raboty HOLD, pri ko-
torom sozdavaemye na ustrojstve pri vypolnenii
komandy opr fajly nakopleniya budut pomeshchat'sya v
sostoyanii zaderzhki;
idvm ukazyvaet identifikator VM, kotoroj prednaznacha-
etsya fajl nakopleniya. Po umolchaniyu identifikator
VM vybiraetsya iz 5-ogo polya sootvetstvuyushchej
pol'zovatelyu zapisi fajla /etc/passwd;
68
APK.00210-01 33 01-5
kopiya opredelyaet kolichestvo kopij fajlov nakopleniya,
kotoroe dolzhno byt' polucheno pri vyvode etih
fajlov na real'noe ustrojstvo vyvoda;
imya_fajla
ukazyvaet, chto sozdannomu fajlu nakopleniya, dlya
ukazannyh fajlov DEMOS, sleduet prisvoit' iden-
tifikator fajla v formate, prinyatom v PDO ili OS
ES;
klass klass nakopleniya, v kotoryj dolzhen byt' pomeshchen
sozdannyj fajl nakopleniya. Po umolchaniyu fajl na-
kopleniya pomeshchaetsya v ochered' klassa A, esli
zadan vvodnoj fajl v komande opr, v protivnom
sluchae - v ochered' klassa T;
-u ukazyvaet, chto fajly nakopleniya pechatayushchego
ustrojstva, sozdavaemye posle vypolneniya koman-
dy, dolzhny peredavat'sya na perfokartochnoe
ustrojstvo vvoda VM, identifikator kotoroj
predstavlen v opcii;
-v ukazyvaet, chto fajly nakopleniya pechatayushchego
ustrojstva, sozdavaemye posle vypolneniya koman-
dy, dolzhny peredavat'sya na ACPU VM, identifika-
tor kotoroj predstavlen v opcii;
-t prednaznachena dlya zaneseniya predstavlennoj v op-
cii informacii v teg fajla nakopleniya;
-T zagolovok, formiruemyj razdelitel' pechatnyh
69
APK.00210-01 33 01-5
fajlov;
fajl imya fajla v DEMOS.
FAJLY:
/etc/passwd
poisk identifikatora VM
/tmp/opr????
vremennyj fajl
DOPOLNITELXNYE SSYLKI:
qprt
ZAMECHANIYA:
Rabota VM DEMOS v mnogopol'zovatel'skom rezhime prois-
hodit s otsoedinennym pul'tom VM, poetomu izmenenie
rezhimov nakopleniya dlya konkretnogo fajla vozmozhno
tol'ko komandoj opr.
Sobstvenno operaciyu peresylki fajla v oblast' nakople-
niya i postanovki ego v ochered' k real'nomu pechatayushchemu
ustrojstvu osushchestvlyaet sleduyushchij process
/rtc/spooler/opred, iniciiruemyj komandoj opr.
70
APK.00210-01 33 01-5
IMYA:
passwd - izmenit' vhodnoj parol'.
FORMAT
passwd [imya]
OPISANIE:
Dannaya komanda izmenyaet (ili ustanavlivaet) parol',
sootvetstvuyushchij ukazannomu imeni pol'zovatelya (po
umolchaniyu prinimaetsya tekushchij identifikator pol'zova-
telya).
Programma zaprashivaet snachala staryj parol', a zatem
novyj. Pol'zovatel' dolzhen ukazat' oba. Novyj parol'
dolzhen byt' vveden dvazhdy s cel'yu predotvrashcheniya oshi-
bok.
Novyj parol' dolzhen imet' dlinu po krajnej mere chetyre
simvola, esli on ispol'zuet dostatochno shirokij alfa-
vit, i po krajnej mere shest' simvolov, esli vse simvo-
ly ukazyvayutsya v odnom i tom zhe registre. |ti pravila
oslablyayutsya, esli vy dostatochno nastojchivy.
Izmenit' parol' mogut tol'ko vladelec dannogo imeni
ili super-pol'zovatel'; vladelec dolzhen dokazat', chto
on znaet staryj parol'.
DOPOLNITELXNYE SSYLKI :
login, crypt
71
APK.00210-01 33 01-5
IMYA:
PC - vyzov kompilyatora s yazyka Paskal'
FORMAT:
PC [klyuch]...fajl...
OPISANIE:
Komanda RS prednaznachena dlya vyzova kompilyatora s yazy-
ka Paskal'. Ona vosprinimaet parametry treh tipov: pa-
rametry, imena kotoryh zakanchivayutsya na '.R', schitayut-
sya ishodnymi programmami na yazyke Paskal'; oni kompi-
liruyutsya , i kazhdaya ob'ektnaya programma ostaetsya v
fajle, imya kotorogo poluchaetsya iz imeni sootvetstvu-
yushchego ishodnogo fajla posle zameny ".R" na ".O". Fajl
".O" udalyaetsya, esli odna Paskal'-programma kompiliru-
etsya i zagruzhaetsya v odnom prohode.
Ob'ektnye programmy,poluchennye posle dejstviya komandy
RS sovmestimy s ob'ektnymi programmami, poluchennymi s
pomoshch'yu komandy SS (t.e. programmy Paskalya i Si-
programmy mogut vzaimno vyzyvat' drug druga bez spe-
cial'nogo interfejsa).
Soobshcheniya ob oshibkah kompilyacii i vypolneniya pomeshchayut-
sya v fajl s suffiksom ".L".
V komande RS mogut zadavat'sya sleduyushchie klyuchi:
-C otmenyaet fazy cbopki i vyzyvaet genepaciyu
ob'ektnogo koda dazhe togda, kogda kompilipyetcya
tol'ko odna ppogpamma;
72
APK.00210-01 33 01-5
-Dimya=opr -Dimya
oppedelyaet ykazannoe "imya" dlya ppeppoceccopa.
Ecli oppedelenie ne zadano, dannoe imya
oppedelyaetcya kak "1";
-S kompilipyet pepechiclennye Packal'-ppogpammy i
octavlyaet pezyl'tat paboty v vide accemblepnogo
tekcta v cootvetctvyyushchix fajlax c cyffikcami
".S";
-N vydaet cpicok komand, genepipyemyx PC, no ne
vypolnyaet ix;
-P zapyckaet tol'ko ppeppoceccop dlya pepechiclennyx
Packal'-ppogpamm, pezyl'tat raboty kotorogo po-
meshchaetsya v fajl s sootvetstvuyushchim imenem i suf-
fiksom ".I".
-Uimya ydalyaet vce nachal'nye oppedeleniya ykazannogo
imeni;
-Isprav
poick fajlov "#include" v cppavochnike "cppav",
ecli oni ne byli najdeny v tekyshchem cppavochnike
ili v /usr/src/include;
octal'nye papametpy yavlyayutcya libo covmectimymi c
Packalem ili Ci ob'ektnymi programmami , poluchennymi
obychno v rezul'tate predshestvuyushchih vypolnenij komand
RS ili SS, libo programm,sovmestimyh s Paskalem i Si.
73
APK.00210-01 33 01-5
|ti programmy , vmeste s rezul'tatami ukazannyh kompi-
lyacij, zagruzhayutsya ( v zadannom poryadke ), davaya v
rezul'tate vypolnyaemuyu programmu s imenem a.out;
kompilyatop Packalya-8000 vepcii 1.0 imeet nekotopye
otlichiya ot ctandaptnogo Paskalya: mnozhestva ogranicheny
64 elementami , rutiny leksicheskogo urovnya n ograni-
cheny razmerom v (7-n)*4K bajtov, gde 1<n<6 (redko vy-
zyvaet problemu), chislo otkpytyx fajlov ne dolzhno
ppevyshat' 15. Mozhet icpol'zovat'cya pazdel'naya kompilya-
ciya. Obespechen vyzov preprocessora, kak v komande SS.
FAJLY:
Fajl.R vyhodnoj fajl
Fajl.L fajl oshibok
Fajl.O ob'ektnyj fajl
a.out zagruzochnyj vyhod
/tmp/pcc?????? vremennyj vyhod preprocessora
/tmp/pcc??????.s vremennyj vhod assemblera
/lib/pasc kompilyator Paskalya
/lib/pmp preprocessor
/lib/prt0.0 dinamicheskij starter Paskalya
/lib/crt0.0 dinamicheskij starter
/lib/libp.a biblioteka Paskalya
74
APK.00210-01 33 01-5
/lib/libc.a biblioteka Si
Dopolnitel'nye ssylki :
CC,LD
Imeetsya otdel'noe opisanie yazyka Paskal'.
DIAGNOSTIKA:
Diagnosticheskie soobshcheniya, vydavaemye samim kompilya-
torom Paskalya, yavlyayutsya dostatochno ponyatnymi. V neko-
toryh sluchayah soobshcheniya mogut generirovat'sya Assemble-
rom ili redaktorom svyazej.
Oshibki vypolneniya diagnostiruyutsya s ukazaniem togo,
chto vyzvalo ih i vydachej dampa vseh programm Paskalya,
rabotavshih v moment vozniknoveniya oshibki. Damp vklyucha-
et v sebya imya programmy, tochku vyzova ee, znacheniya
vseh lokal'nyh skalyarnyh peremennyh. Damp dolzhen ogra-
nichivat' neobhodimost' vyzova otladchika dcon.
75
APK.00210-01 33 01-5
IMYA:
pif - formatirovanie teksta.
FORMAT:
pif [klyuch] ... [fajl] ...
OPISANIE:
Komanda pif formatiruet tekst iz ukazannyh fajlov dlya
pechati na ustrojstvah tipa pishushchej mashinki.
Esli net ni odnogo argumenta "fajl" ili zadan parametr
"-", chitaetsya standartnyj fajl vvoda. Do argumentov
"fajl" mogut v lyubom poryadke vstretit'sya sleduyushchie
klyuchi:
-ospisok
Pechatayutsya stranicy, nomera kotoryh perechisleny
v "spiske" v vide chisel ili diapazonov chisel,
razdelennyh zapyatymi. Diapazon N-M oznachaet
stranicy s nomerami ot N do M; zapis' -N v nacha-
le "spiska" oznachaet stranicy s pervoj po N;
zapis' N- v konce "spiska" oznachaet stranicy s
nomerom ot N i do konca;
-nN Nomer pervoj generiruemoj stranicy N;
-sN Ostanovka posle kazhdyh N stranic. Pif budet os-
tanavlivat'sya pered kazhdoj porciej iz N stranic
(po umolchaniyu N=1) dlya togo, chtoby mozhno bylo
zapravit' ili zamenit' bumagu, i prodolzhit rabo-
tu po poluchenii simvola novoj stroki;
76
APK.00210-01 33 01-5
-mimya Schityvanie fajla /usr/lib/tmac/tmac.mimya, soder-
zhashchego opredeleniya makrokomand, pered schityvani-
em formatiruemyh fajlov;
-ran Ustanovka registra (odnosimvol'nogo) a v N;
-i Schityvanie standartnogo vvoda posle togo, kak
prochitany vvodnye fajly;
-q Ustanovka rezhima odnovremennogo vvoda-vyvoda po
zaprosu rd;
-Timya Podgotovka vyvoda dlya ukazannogo terminal'nogo
ustrojstva;
e Sozdanie slov s odinakovym intervalom v soot-
vetstvuyushchih strokah, ispol'zuya vsyu razreshayushchuyu
sposobnost' terminala;
h Ispol'zovanie vyhodnoj tabulyacii vo vremya gori-
zontal'nogo pozicionirovaniya dlya togo, chtoby
uvelichit' skorost' vyvoda i umen'shit' vremya na
schet vyhodnyh simvolov. Predpolagaetsya, chto ta-
bulyacionnye ustanovki imeyut shirinu vosem' nomi-
nal'nyh simvolov.
FAJLY:
/usr/lib/tmac/tmac.*
Standartnye makrofajly
/usr/lib/term/*
Tablicy terminalov
77
APK.00210-01 33 01-5
/tmp/ta*
Vremennye fajly
DOPOLNITELXNYE SSYLKI :
tbl, col
78
APK.00210-01 33 01-5
IMYA:
pli - obrabotka programm PL/1.
Format:
pli [-clgirsq ] fajl ...
OPISANIE:
Komanda pli predstavlyaet soboj pol'zovatel'skij inter-
fejs s komandoj send. Naznachenie komandy sostoit v
tom, chtoby sformirovat' i peredat' zadanie v OS ES dlya
obrabotki programmy translyatorom s yazyka PL/1. Vvodnym
fajlom komandy yavlyaetsya sobstvenno tekst ppogpammy
PL/1, kotopyj oformlyaetsya v zadanie OS ES na osnove
flazhkov komandy. Oformlennoe zadanie pomeshchaetsya vo
vremennom fajle, icpol'zyemom v kachectve fajla vvoda
komandy send.
Nedostayushchie parametry dolzhny byt' vvedeny v otvet na
podskazku komandy. Utochnennye parametry sohranyayutsya
mezhdu seansami v fajle profilya pol'zovatelya
$home/.../pli. Komandoj obespechivayutsya sleduyushchie voz-
mozhnosti obrabotki:
- kompilyaciya odnoj ili bolee programm;
- kompilyaciya i redaktirovanie programm;
- kompilyaciya, pedaktipovanie i vypolnenie odnoj
ili bolee programm;
- ukazanie biblioteki makroopredelenij dlya ispol'-
79
APK.00210-01 33 01-5
zovaniya sredstv preprocessora v kompilyacii;
- pol'zovatel' osvobozhdaetsya, naskol'ko eto voz-
mozhno ot sostavleniya operatorov YAUZ zadaniya OS
ES;
- vydaetsya podskazka o neobhodimoj informacii, is-
pol'zuya polnoekrannyj vvod/vyvod;
- vvedennaya informaciya sohranyaetsya so vremeni pos-
lednego vypolneniya komandy i eti dannye ispol'-
zuyutsya v kachestve znachenij po umolchaniyu (hotya
vsegda mogut byt' perenaznacheny).
Flazhki komandy ustanavlivayut sledushchie rezhimy raboty
komandy:
-c vypolnit' tol'ko kompilyaciyu fajlov (rezhim dej-
stvuet po umolchaniyu);
-l vypolnit' kompilyaciyu i redaktirovanie fajlov;
-g kompilipovat', pedaktipovat' i vypolnit' sozdan-
nuyu programmu;
-i raspredelit' standartnyj vvod v kachestve istoch-
nika vvoda PL/1 programmy;
-r ispol'zovat' soderzhimoe fajla $home/.../pli
vmesto podskazki pol'zovatelyu;
-s otobrazit' sformirovannoe zadanie dlya OS ES na
ctandaptnyj vyvod, vmecto vyzova send;
80
APK.00210-01 33 01-5
-q vmesto vyzova komandy send vyzvat' komandu gath.
Trebuetsya yavnoe ukazanie vvodnogo fajla v komande
tol'ko v tom sluchae esli ne ukazan flag i.
FAJLY:
/usr/lib/model/jobcard model' operatora JOB dlya
komandy send.
/usr/lib/model/plic model' procedury kompilyaci-
ii.
/usr/lib/model/rlicl model' procedury kompilya-
cii/ redaktirovaniya.
/usr/lib/model/pliclg model' procedury kompilya-
cii/ redaktirovaniya/vypolneniya.
/imp/pli* vremennyj rabochij fajl.
$home/.../pli fajl profilya pol'zovatelya.
DOPOLNITELXNYE SSYLKI:
send
81
APK.00210-01 33 01-5
IMYA:
pp - vydelenie propisnyh bukv pri pechati na ACPU
FORMAT:
pp [-N]
OPISANIE:
Komanda pp yavlyaetsya fil'trom dlya pechati tekstov na
ACPU bez strochnyh bukv. Komanda vydelyaet v tekste pro-
pisnye bukvy, ispol'zuya nalozhenie simvolov. Predpola-
gaetsya, chto pechatayushchee ustrojstvo pravil'no ponimaet
upravlyayushchij simvol "7" - vozvrat karetki. CHislo nalo-
zhenij mozhet byt' ukazano v parametre. Primer ispol'zo-
vaniya komandy:
pr -2 text " pp -3 >/dev/lp
ZAMECHANIYA:
Vozmozhno, chto pri pechati na matrichnoe ustrojstvo tipa
DZM bylo by effektivnee ispol'zovat' dlya pechati s na-
lozheniem opepaciyu "vozvpat na shag nazad", odnako takaya
vozmozhnost' ne predusmotrena.
82
APK.00210-01 33 01-5
IMYA:
pr - pechat' fajlov.
FORMAT:
pr [klyuchi]...[fajl]...
OPISANIE:
Komanda pr pechataet soderzhimoe odnogo ili neskol'kih
fajlov. Vyvod razdelyaetsya na stranicy, zagolovok koto-
ryh soderzhit datu, imya fajla ili ukazannyj zagolovok i
nomer stranicy. Esli parametr "fajl" otsutstvuet, ko-
manda pr raspechatyvaet standartnyj vvod.
Klyuchi otnosyatsya ko vsem posleduyushchim fajlam i mogut pe-
reustanavlivat'sya mezhdu fajlami:
-n V nachale kazhdoj stroki pechatat' ee nomer v fajle;
-iN V nachale kazhdoj stroki pechatat' ee "skvoznoj"
nomer (nachinaya ot pervoj stroki pervogo fajla).
Esli posle klyucha zadano chislo (N), numeraciya nachi-
naestsya s N;
-ns Sgenerirovat' vyvod, sostoyashchij iz "ns" stolbcov;
+ns Nachat' pechat' so stranicy "ns";
-h Sleduyushchij parametr schitaetsya zagolovkom stranic;
-wN Dlya celej mnogokolonochnogo vyvoda, prinyat' shirinu
stranicy ravnoj N simvolov vmesto 72 po umolchaniyu;
-f Dlya dopolneniya stranicy do zadannogo razmera lista
83
APK.00210-01 33 01-5
ispol'zovat' kod "perehod na novyj list" (po umol-
chaniyu vydaetsya neobhodimoe chislo kodov "perehod na
novuyu stroku");
-lN Prinyat' dlinu stranicy ravnoj N strok vmesto 66 po
umolchaniyu;
-t Ne pechatat' po 5 strok v nachale i v konce kazhdoj
stranicy, kotorye obychno vstavlyayutsya;
-sC Razdelyat' stolbcy odinochnym simvolom "C", a ne so-
otvetstvuyushchim kolichestvom probelov. Otsutstvuyushchij
simvol "C" rassmatrivaetsya kak simvol tabulyacii;
-m Raspechatat' vse fajly odnovremenno, kazhdyj v svoem
stolbce.
DOPOLNITELXNYE SSYLKI :
cat, more
DIAGNOSTIKA:
Vo vremya vyvoda na terminal s pomoshch'yu komandy pr diag-
nosticheskie soobshcheniya ne vyvodyatsya.
84
APK.00210-01 33 01-5
IMYA:
PRETTYP-krasivaya pechat' programmy na Paskale
OPISANIE:
SH pefopmatipyet ppogpammy na Packale co ctandaptnogo
vxoda, pezyl'tat podaetsya na standartnyj vyhod,
DIAGNOSTIKA:
Diagnosticheskie soobshcheniya otsutstvuyut
PRIMECHANIE:
*Ne dopuskaetsya tabulyaciya.
*Nepredskazuemyj rezul'tat v sluchae sintaksicheski ne-
vernoj programmy.
*Vstavlyaetsya stroka probelov v nachalo vyhoda.
*Esli chiclo cimvolov v ctpoke ppevyshaet 72, ctpoka
pazbivaetcya i pepenocitcya, chto samo po sebe mozhet
vyzvat' nezhelaemyj rezul'tat.
85
APK.00210-01 33 01-5
IMYA:
ps - opros sostoyaniya processov.
FORMAT:
ps [acgklrstuvwx# [spisok-imen]]
OPISANIE:
Komanda ps vydaet informaciyu ob aktivnyh processah.
Dlya polucheniya naibolee podrobnoj informacii ispol'zuj-
te komandu "ps axlgw". Dlya polucheniya bystroj fotogra-
fii raboty sistemy rekomenduetsya ispol'zovat' "ps au".
Parametram mozhet predshestvovat' znak minus, ne okazy-
vayushchij nikakogo vliyaniya. Mogut byt' zadany sleduyushchie
klyuchi (po umolchaniyu, ustanavlivaetsya rezhim "cx"):
a Zaprashivaet informaciyu obo vseh processah s ter-
minalami (obychno otobrazhayutsya tol'ko sobstvennye
processy);
c Privodit k tomu, chto vmesto parametrov otobrazha-
etsya tol'ko pole comm. (pole comm predstavlyaet
soboj okonchanie polnogo imeni poslednego fajla,
vypolnennogo processom). |tot klyuch neskol'ko us-
koryaet vypolnenie komandy ps i umen'shaet ob'em
vyvoda. |to takzhe bolee nadezhno, poskol'ku pro-
cess ne mozhet izmenit' ego vershinu;
e Vydaet ne tol'ko komandy no i kontekst v kotorom
oni zapushcheny, (t.e. so znacheniyami vseh peremen-
nyh yazyka upravleniya zadaniyami);
86
APK.00210-01 33 01-5
g Vydaet informaciyu obo vseh processah. Bez etogo
klyucha komanda ps raspechatyvaet tol'ko "interes-
nye" processy. Processy schitayutsya "neinteresny-
mi", esli oni yavlyayutsya golovnymi v gruppe pro-
cessov ili ih parametry nachinayutsya s "-". |to
obychno pozvolyaet ustranit' vydachu informacii o
processah interpretatorov komand i getty;
k |tot klyuch ispol'zuetsya dlya posleschetnoj otladki
sistemy;
l Zadaet "dlinnyj" format vyvoda. Korotkaya forma
soderzhit tol'ko imya pol'zovatelya, indentifikator
processa, terminal, vremya vypolneniya processa i
sokrashchennuyu zapis' komandnoj stroki;
r<t>-<string>-
Ciklicheskij rezhim raboty ps. Komanda povtoryaet
vydachu na ekran terminala kazhdye <t> sekund,
prichem pered vydachej posylaetsya posledovatel'-
nost' simvolov <string> dlya ochistki ekrana.
Vydaetsya informaciya tol'ko o processah, nahodya-
shchihsya v operativnoj pamyati. Dannyj rezhim ispol'-
zuetsya v komandnoj procedure "/etc/psloop", ko-
toraya periodicheski otobrazhaet na ekrane sosto-
yanie operacionnoj sistemy;
s Vydavat' razmer steka yadra dlya kazhdogo processa.
|tot klyuch mozhet ispol'zovat'sya tol'ko s korotkoj
formoj listinga i prednaznachen dlya razrabotchikov
87
APK.00210-01 33 01-5
sistemy;
t imya-terminala
Ogranichivaet vyvod processami, ch'i upravlyayushchie
terminaly imeyut ukazannoe imya (kotoroe dolzhno
zadavat'sya tak, kak oni pechataeyutsya komandoj ps,
naprimer, t3 dlya tty3, tc0 dlya konsoli, td0 dlya
ttyd0, t? dlya processov, ne imeyushchih terminalov,
i t.d.). |ta opciya dolzhna zadavat'sya poslednej;
u Generiruetsya vyvod, orientirovannyj na pol'zova-
telya. On vklyuchaet imya vladel'ca processa, iden-
tifikator processa, procent nedavno ispol'zovan-
nogo vremeni central'nogo processora (eshche ne re-
alizovano), znachenie prioriteta, razmer, razmer
rezidentnoj chasti, terminal, ispol'zovannoe vre-
mya central'nogo processora i komandu;
v Vydaetsya versiya vyvoda, soderzhashchaya statistiku,
otnosyashchuyusya k virtual'noj pamyati. Polyami vyvoda
yavlyayutsya flagi, identifikator processa, termi-
nal, vremya central'nogo processora, vremya rezi-
dentnogo sostoyaniya, vremya ozhidaniya, mladshaya
chast' sbrosov stranic, starshaya chast' sbrosov
stranic, virtual'nyj razmer processa, razmer re-
zidentnoj chasti, razmer rezidentnoj chasti pri
podkachke, virtual'nyj razmer tekstovoj chasti,
razmer rezidentnoj chasti teksta, srednee koli-
chestvo sbrosov stranic v sekundu za poslednie
88
APK.00210-01 33 01-5
neskol'ko sekund, a takzhe komanda. Ispol'zuyutsya
sleduyushchie flagi: r oznachaet rabotu, s oznachaet
ozhidanie, w oznachaet vygruzku, d oznachaet ozhida-
nie diska (vvod-vyvod), i p oznachaet ozhidanie
stranicy. Rezidentnoe vremya - eto promezhutok
vremeni v pamyati ili na diske; v nastoyashchee vremya
"127" yavlyaetsya maksimal'nym. Rezidentnyj razmer
- eto kolichestvo vydelennyh stranic fizicheskoj
pamyati;
w Soobshchaet komande ps o tom, chto vy ispol'zuete
terminal s dlinnoj stroki 132 simvola. Po umol-
chaniyu schitaetsya, chto vash terminal imeet 80
stolbcov. |ta informaciya ispol'zuetsya dlya opre-
deleniya togo, kakaya dlina komand dolzhna raspecha-
tyvat'sya. Klyuch w mozhet byt' povtoren: "ww", pri
etom vsya komanda, do 128 simvolov, budet raspe-
chatyvat'sya nezavisimo ot dliny stroki terminala;
x Zaprashivaet informaciyu dazhe o processah, ne ime-
yushchih terminalov;
# Mozhet ukazyvat' nomer processa (ukazannyj zdes'
kak #), pri etom vyvod ogranichivaetsya dannymi ob
etom processe. |tot klyuch takzhe dolzhen byt' pos-
lednim.
Vtoroj parametr soobshchaet komande ps o tom, gde iskat'
obraz pamyati pri ukazanii opcii "k". Po umolchaniyu is-
pol'zuetsya imya iz peremennoj sredy "KERNEL", a esli
89
APK.00210-01 33 01-5
ona ne najdena, to imya "/demos". Tretij parametr
predstavlyaet soboj imya fajla svopinga. Esli zadan chet-
vertyj parametr, on schitaetsya fajlom, soderzhashchim spi-
sok imen sistemy.
Vyvod sortiruetsya po terminalam, a zatem - po identi-
fikatoram processov.
Dlinnaya forma listinga pechataetsya stolbcami i soder-
zhit:
F Flagi, svyazannye s processom;
S Sostoyanie processa: o - nesushchestvuyushchij, s -
"spyashchij", w - ozhidayushchij, r - vypolnyayushchij, i -
promezhutochnyj, z - zavershennyj, t - ostanovlen-
nyj;
UID Identifikator pol'zovatelya vladel'ca processa;
PID Identifikator dannogo processa; v nekotoryh slu-
chayah mozhno udalit' process, esli vy znaete ego
istinnoe imya;
PPID Identifikator porozhdayushchego processa;
CPU Ispol'zovanie processa dlya planirovaniya;
PRI Prioritet processa; bol'shie chisla oznachayut men'-
shie prioritety;
NICE Ispol'zuetsya dlya vychisleniya prioriteta;
90
APK.00210-01 33 01-5
ADDR Adres pamyati processa, esli on yavlyaetsya rezi-
dentnym, v protivnom sluchae - adres na diske;
SZ Razmer obraza pamyati processa v blokah;
RSS Razmer rizidentnoj chasti (chast' stranic, k koto-
rym process mozhet obratit'sya bez sbrosov) pro-
cessa;
WCHAN Sobytie, kotoroe ozhidaet process; esli probel,
process vypolnyaetsya. tty - upravlyayushchij terminal
dlya dannogo processa;
TIME Summarnoe vremya vypolneniya dlya dannogo processa;
COMAND
Komanda i ee parametry.
Process, kotoryj uzhe zavershilsya, imeet, odnako, porozh-
dayushchij process, kotoryj eshche ne ozhidal ego, otmechaetsya
<defunct>(<zakonchivshijsya>). Komanda ps staraetsya opre-
delit' imya fajla i parametry, ukazannye pri sozdanii
processa, putem issledovaniya pamyati ili oblasti svo-
pinga. |tot metod v svoej sushchnosti yavlyaetsya neskol'ko
nenadezhnym, i v lyubom sluchae process mozhet razrushit'
etu informaciyu, tak chto na eti imena nel'zya slishkom
polagat'sya.
DOPOLNITELXNYE SSYLKI :
kill
ZAMECHANIYA:
91
APK.00210-01 33 01-5
Vo vremya raboty komandy ps situaciya mozhet izmenit'sya;
poluchennaya kartina yavlyaetsya lish' nekotorym priblizheni-
em k real'noj.
92
APK.00210-01 33 01-5
IMYA:
pwd - vydat' imya rabochego spravochnika
FORMAT:
pwd
OPISANIE:
Komanda pwd vydaet polnoe imya rabochego (tekushchego)
spravochnika.
DOPOLNITELXNYE SSYLKI :
cd
93
APK.00210-01 33 01-5
IMYA:
PXREF - perekrestnye ssylki Paskalya
FORMAT:
PXREF
OPISANIE:
PXREF komanda prinimaet ishodnyj tekst programmy na
Paskale so standartnogo vhoda i vyvodit na stan-
dartnyj vyhod perekrestnye ssylki. Informaciya o perek-
restnyh ssylkah delitsya na tri chasti: listing ob'yavle-
nij, perekrestnye ssylki rutin i perekrestnye ssylki
vsego ostal'nogo. Kazhdyj identifikator perekrestnoj
ssylki soprovozhdaetsya imenem rutiny i nomerom stroki,
gde on vstretilsya.
94
APK.00210-01 33 01-5
IMYA:
q, ind, autolog, mo - vypolnit' komandu MVM.
FORMAT:
q argument...
ind [user]
autolog idvm parol' [dannye]
mo
OPISANIE:
Komandy MVM q, ind, autolog, mo (bez parametrov) ne
okazyvayut vliyanie na rabotu virtual'noj mashiny DEMOS,
poetomu oni dostupny ryadovomu pol'zovatelyu. Vyhodom
etih komand raspredelyaetsya fajl standartnogo vyvoda.
Komanda montirovaniya mo s parametrami dostupna tol'ko
super-pol'zovatelyu.
FAJLY:
/dev/vcf?
DOPOLNITELXNYE SSYLKI:
vcf, cpcmd, cpmode
Format i parametry etih komand privodyatsya v dokumentah
SVM "Komandy monitora VM ", "Upravlenie virtual'noj
mashinoj".
DIAGNOSTIKA:
Soobshchenie 'command too long' oznachaet prevyshenie 132
95
APK.00210-01 33 01-5
simvolov vvodnoj strokoj parametrov komandy.
96
APK.00210-01 33 01-5
IMYA:
ranlib - sozdanie kataloga bibliotechnogo arhiva
FORMAT:
ranlib arhiv1 ...
OPISANIE:
Komanda ranlib prednaznachena dlya zapisi ili obnovleniya
kataloga vhodov v arhivah ob'ektnyh fajlov (to est' v
bibliotekah programm). Po komande "ranlib" v nachalo
arhiva, sformirovannogo komandoj "ar", zapisyvaetsya
fajl "__.SYMDEF", soderzhashchij katalog biblioteki. Zag-
ruzchik "ld" ispol'zuet katalog dlya uskoreniya zagruzki;
krome togo, v etom sluchae zagruzhayutsya srazu vse prog-
rammy iz dannoj biblioteki (nezavisimo ot togo, v
kakom poryadke oni zapisany). Dlya zapisi ispol'zuetsya
komanda "ar", pri etom dolzhno byt' dostatochno svobod-
nogo mesta v spravochnike "/tmp".
ZAMECHANIYA:
Esli kakoj libo ob'ektnyj fajl byl zapisan v bibliote-
ku posle sozdaniya kataloga komandoj "ranlib", to est'
biblioteka obnovlyalas' posle zapisi "__.SYMDEF", zag-
ruzchik "ld" vydaet predupreditel'noe soobshchenie
"__.SYMDEF out of date" i ignoriruet fajl "__.SYMDEF".
Pri etom vozmozhno poyavlenie neopredelennyh vneshnih
imen iz za togo, chto pri zagruzke iz biblioteki bez
kataloga "__.SYMDEF" biblioteka prosmatrivaetsya posle-
dovatel'no, prichem tol'ko odin raz. Takaya zhe situaciya
97
APK.00210-01 33 01-5
vozniknet, esli prosto perepisat' biblioteku komandoj
"cp". Dlya yctpaneniya necootvetctviya dat neobxodimo
povtopit' komandy "ranlib".
98
APK.00210-01 33 01-5
IMYA:
red - poliekpannyj pedaktop tekctov.
FORMAT:
red [-klyuchi] imya_fajla [nomep_ctpoki]
red [-klyuchi]
red [-klyuchi] -
red [-klyuchi] -r fajl_ppotokol
OPISANIE:
Pedaktop red ppednaznachen dlya pedaktipovaniya i
ppocmotpa fajlov v ekpannom pezhime c pomoshch'yu
tepminalov EC-7920 i covmectimyx c nimi. On pozvolyaet
ppocmatpivat' na ekpane tepminala odin ili neckol'ko
fajlov, pedaktipovat' fajly c icpol'zovaniem yppavlya-
yushchix klavish tepminala i komand pedaktopa, pepenocit'
infopmaciyu iz fajla v fajl i ppovodit' dpygie opepacii
pedaktipovaniya. Pedaktop analogichen po fynkciyam
pedaktopy "red" dlya OC DEMOC/CM i podpobno opican v
pykovodctve ppogpammicta ("Dialogovaya edinaya mobil'naya
opepacionnaya cictema. Pykovodctvo ppogpammicta. Poli-
ekpannyj pedaktop tekctov RED.").
Pedaktop vyzyvaetcya c pomoshch'yu komandy "red" v odnom iz
cledyyushchix fopmatov:
red [-klyuchi] imya_fajla [nomep_ctpoki]
Hachat' pedaktipovanie fajla "imya_fajla",
yctanoviv okno na ctpoky "nomep_ctpoki"; ecli
nomep ne ykazan, vycvechivaetcya nachalo fajla.
99
APK.00210-01 33 01-5
red [-klyuchi]
Ppodolzhit' pedaktipovanie c togo coctoyaniya, v
kotopom byl zavepshen ppedydyshchij ceanc paboty c
dannogo tepminala.
red [-klyuchi] -
Povtopit' ceanc pedaktipovaniya fajlov pocle cboya
cictemy ili pedaktopa.
red [-klyuchi] -r fajl_ppotokol
Povtopit' ceanc pedaktipovaniya, cchitav ppotokol
iz ykazannogo fajla.
Pezhim paboty pedaktopa zadaetcya c pomoshch'yu nabopa
"klyuchej", kazhdomy iz kotopyx cootvetctvyet odna
latinckaya bykva. Klyuchi izmenyayutcya c pomoshch'yu ctpoki
opicaniya klyuchej vida "-nabop_bykv+nabop_bykv", gde
lyubaya polovina ctpoki mozhet otcytctvovat'. Opicanie
klyuchej mozhet zadavat'cya:
1. v apgymente komandy v vide "red --l+s ..."
(obpatite vnimanie, chto pepvyj "-" yavlyaetcya
ppiznakom cootvetctvyyushchego apgymenta komandy, a
vtopoj oznachaet "otmena klyucha l");
2. c pomoshch'yu pepemennoj csh REDKEYS, nappimep:
setenv REDKEYS "+l"
3. c pomoshch'yu komandy pedaktopa, nappimep:
100
APK.00210-01 33 01-5
<APG>-w<BBOD>
chto oznachaet:
(PF7)-W(BBOD)
Bozmozhnye klyuchi:
l - pabotat' tol'ko c bol'shimi bykvami (pezhim LCASE)
s - ppi vyvode na tepminal cimvoly "{", "}" i t.p.
izobpazhat' c pomoshch'yu papy cimvolov (vvodyatcya oni tak
vcegda);
t - ne vctavlyat' tabylyacii vmecto ppobelov.
w - pazpeshenie zapici v tekyshchij fajl.
z - ne intepppetipovat' pyctye cimvoly na ekpane kak
ppobely (po ymolchaniyu nylevye cimvoly vvodyatcya c
tepminala kak ppobely);
S - ne vycvechivat' ekpan ppi povtope ceanca pocle
cboya.
Po ymolchaniyu yctanavlivaetcya pezhim "-ls"; ecli na
tepminale ne yctanovlen pezhim "lcase", i "+ls" v
ppotivnom clychae. Cledyet imet' v vidy, chto ppi cmene
pezhimov "l" i "s" v ppocecce paboty neobxodimo
pepevydat' ekpan, nazhav "CTPH |KP".
Bvod komand ocyshchectvlyaetcya c pomoshch'yu fynkcional'nyx
101
APK.00210-01 33 01-5
klavish tepminala EC-7920. Pazmeshchenie komand vybpano
tak, chto ono ppaktichecki covpadaet c pazmeshcheniem
komand na dopolnitel'noj cifpovoj klaviatype tepminala
"|lektponika-15-I|" na CM |BM. Hekotopye otlichiya
cvyazany c tem, chto kazhdaya klavisha mozhet vvodit' 3
paznye komandy, v zavicimvoti ot "pegictpa vvoda",
kotopyj yctanavlivaetcya c pomoshch'yu klavish "PD2" i "PD3"
(dlya covmectimocti c CM |BM mozhno takzhe icpol'zovat'
dlya etoj celi "PF8"). Tablica komand ppivedena v fajle
"/usr/lib/re.std", kotopyj vycvechivaetcya ppi nazhatii
klavishi "PF10" (komanda "yctanovi_fajl").
Pazmeshchenie komand na klaviatypy 7920
-----pd2--------pf1---------pf2---------pf3------pegictp:
! pegictp 2 ! +lict ! vctavit' ! vzyat' ! - 1
! pegictp 1 ! -lict ! ybpat' ! polozhit' ! - 2
! pegictp 1 ! tab nazad ! - ctpoki ! tab vpeped! - 3
102
APK.00210-01 33 01-5
-----pd3--------pf4---------pf5---------pf6------
! registr 3 ! podvecti k! vct ppobel! ybp cimvol! - 1
! fikcaciya 3! cozd okno ! yct tab ! zap fajl ! - 2
! pegictp 1 ! okno vlevo! v nachalo !okno vppavo! - 3
----------------pf7---------pf8---------pf9------
! ! apgyment ! pegictp 2 ! + poick ! - 1
! ! ! pegictp 1 ! - poick ! - 2
! ! ! + ctpoki ! *** ! - 3
----------------pf10--------pf11--------pf12-----
! ! ped fajl ! ybpat' ! polozhit' ! - 1
! ! cled okno ! payza ! otvet ! - 2
! ! vypolni ! *** ! *** ! - 3
-------------------------------------------------
--ctipanie---
! ochictit' i!
! povtopit' !
! dvizhenie !
! okna !
--vyz.tecta--
! !
! vyxod !
! !
-------------
Pic. 1.
Ocnovnye otlichiya pedaktopa ot vepcii dlya CM |BM:
1. Bmecto komandy "pezhim vctavki" vvedena komanda
103
APK.00210-01 33 01-5
"vctavit' ppobely", kotopaya vctavlyaet v tekyshchee
mecto ctpoki ppobely (po ymolchaniyu 4, dlya
izmeneniya chicla ppobelov nyzhno vvecti
<APG>chiclo<BCTABITX>). Dlya vctavki/ydaleniya
cimvolov iz ctpoki mozhno pol'zovat'cya libo
avtonomnymi vozmozhnoctyami tepminala, libo
komandami "vct ppobel", "ybp. cimvol", kotopye v
otlichie ot avtonomnyx komand tepminala
vdvigayut/vydvigayut tekct iz za ppavoj gpanicy
ekpana tepminala.
2. Dlya pepexoda k pezhimy ykazaniya kypcopom iz vvoda
apgymenta nazhmite "BBOD" ili vvedite odny iz
komand yppavleniya kypcopom
3. Obpatnyyu chepty ppi vvode neobxodimo vcegda
ydvaivat'.
4. Dlya vvoda/vyvoda netekctovyx cimvolov icpol'-
zyetcya kombinaciya cimvolov vida " 07".
5. Ecli apgyment komandy ne ymeshchaetcya v pole vvoda,
ego mozhno vvecti za neckol'ko paz, nazhimaya
"<APG>" pocle vvoda ochepednoj chacti papametpa.
6. Dlya pepemeshcheniya okna vvepx/vniz ili vppavo/vlevo
doctatochno podvecti kypcop k cootvetctvyyushchej
gpanice ekpana i nazhat' "BBOD".
B pedaktop vvedeny komandy "payza" i "otvet", kotopye
pozvolyayut zapicat' v ppotokol ceanca payzy 5 cekynd
104
APK.00210-01 33 01-5
ili ozhidanie nazhatiya klavishi "vvod" i ppednaznacheny
dlya napicaniya ychebnogo ppotokola paboty pedaktopa.
DOPOLNITELXNYE SSYLKI :
rpl(1)
ZAMECHANIYA:
Dlya povtopa ceanca pocle cboya neobxodimo, chtoby v
cppavochnike "/tmp" byli octavleny fajly c imenami
"rett*" i "resv*". B imena pabochix fajlov pedaktopa
dobavlyaetcya imya pol'zovatelya, vzyatoe iz pepemennoj
"USER", libo nomep pol'zovatelya, ecli eta pepemennaya
ne zadana..
FAJLY
/tmp/rett*.imya - ppotokol paboty pedaktopa;
/tmp/resv*.imya - coctoyanie pedaktopa ppi vyxode iz
nego;
/tmp/retm*.imya - pabochij fajl.
105
APK.00210-01 33 01-5
IMYA:
refft, crreff - poluchenie tablicy ispol'zovaniya iden-
tifikatorov.
FORMAT:
refft <spisok fajlov>
crreff <fajl>
OPISANIE:
Komandy refft i crreff sluzhat dlya polucheniya tablicy
ispol'zovaniya identifikatorov v programme ili komplek-
se programm na Si. Parametrom komandy crreff yavlyaetsya
imya fajla, soderzhashchego ishodnuyu programmu na yazyke Si,
esli imya fajla ne zadano, chitaetsya standartnyj vvod.
Komanda chitaet ishodnyj tekst programmy na Si i vydaet
tablicu identifikatorov v sleduyushchem formate:
chislo imya fajl stroka stroka ...
Dlya kazhdogo identifikatora, vydaetsya "chislo" vhozhde-
nij, ego "imya", "fajl" i spisok "strok", v kotoryh on
vstrechaetsya.
Komanda refft sostavlyaet analogichnuyu tablicu dlya prog-
rammy, zanimayushchej neskol'ko fajlov; v etom sluchae dlya
kazhdogo identifikatora vydaetsya neskol'ko spiskov
strok, po odnomu dlya kazhdogo fajla.
DOPOLNITELXNYE SSYLKI :
ctags
106
APK.00210-01 33 01-5
ZAMECHANIYA:
Komanda refft na samom dele yavlyaetsya komandnym fajlom
na SHELL i ispol'zuet komandu crreff v special'nom re-
zhime (flag "-j").
107
APK.00210-01 33 01-5
IMYA:
rev - perevernut' stroki fajla
FORMAT:
rev [fajl]...
OPISANIE:
Komanda rev kopiruet ukazannye fajly v standartnyj
fajl vyvoda, menyaya na protivopolozhnyj poryadok sledova-
niya simvolov v kazhdoj stroke. Esli ne ukazan ni odin
fajl, informaciya beretsya iz standartnogo fajla vvoda.
108
APK.00210-01 33 01-5
IMYA:
rline - chtenie odnoj stroki
FORMAT:
rline
OPISANIE:
Komanda rline schityvaet odnu stroku iz standartnogo
vvoda i vydaet ee v standartnyj vyvod. Komanda ispol'-
zuetsya v CSHELL dlya vvoda s terminala, naprimer:
#
echo "Enter devise type set dev=`rline`
109
APK.00210-01 33 01-5
IMYA:
rm, rmdir - ydalit' fajly (cppavochniki)
FORMAT:
rm [-f] [-r] [-i] [-] fajl...
rmdir spravochnik ...
OPISANIE:
Komanda rm udalyaet iz spravochnika ssylki na odin ili
neskol'ko fajlov.
Esli nekotoraya ssylka yavlyaetsya poslednej ssylkoj na
dannyj fajl, etot fajl unichtozhaetsya. Dlya udaleniya
fajla iz spravochnika trebuetsya pravo zapisi v dannyj
spravochnik, no ne trebuyutsya ni pravo zapisi v dannyj
fajl, ni pravo chteniya fajla.
Esli pol'zovatel' ne imeet prava zapisi v fajl, a
standartnym fajlom vvoda yavlyaetsya terminal, vydaetsya
zapros na podtverzhdenie operacii i schityvaetsya stroka
standartnogo vvoda. Esli eta stroka nachinaetsya simvo-
lom "y", fajl udalyaetsya, v protivnom sluchae fajl osta-
etsya. Nikakie voprosy ne zadayutsya, esli zadan klyuch
"-f".
Esli ukazannyj fajl yavlyaetsya spravochnikom, pechataetsya
soobshchenie ob oshibke. Pri ispol'zovanii klyucha "-r" re-
kursivno unichtozhayutsya fajly iz etogo spravochnika i sam
spravochnik.
Pri ukazanii klyucha "-i" (interaktivno) komanda rm za-
110
APK.00210-01 33 01-5
daet vopros o neobhodimosti udaleniya kazhdogo fajla, a
vmeste s klyuchom "-r" - nuzhno li proveryat' kazhdyj spra-
vochnik.
Komanda rmdir udalyaet ssylki na ukazannye spravochniki.
Pri etom spravochniki dolzhny byt' pustymi.
DOPOLNITELXNYE SSYLKI :
unlink
ZAMECHANIYA:
Mogut vozniknut' vrednye posledstviya pri neumyshlennom
vypolnenii chego-nibud' vrode "rm .*"
Glubina vlozhennosti spravochnikov pri ispol'zovanii "rm
-r" ne dolzhna byt' slishkom bol'shoj.
111
APK.00210-01 33 01-5
IMYA:
rpl - kontekstnaya zamena
FORMAT:
rpl shablon zamena
OPISANIE:
Komanda rpl schityvaet stroki iz standartnogo vvoda,
zamenyaet vse vhozhdeniya stroki - pervogo argumenta na
vtoroj argument, i vydaet rezul'tat v standartnyj
vyvod. Raspoznayutsya regulyarnye vyrazheniya v pervom ar-
gumente po tem zhe pravilam, kakie dejstvuyut v redakto-
re "ed" v kontekste poiska, s tem otlichiem, chto vmesto
simvola "." dlya oboznacheniya odnogo proizvol'nogo sim-
vola ispol'zuetsya simvol "@".
Primer:
rpl "^ *" ":" <a >b
Schityvaetsya fajl "a", vse gruppy probelov v nachale
strok zamenyayutsya na dvoetochie, i rezul'tat zapisyvaet-
sya v fajl "b".
Komanda rpl prednaznachena glavnym obrazom dlya kon-
tekstnoj zameny v redaktore red, hotya mozhet ispol'zo-
vat'sya i samostoyatel'no.
112
APK.00210-01 33 01-5
IMYA:
sed - paketnyj redaktor
FORMAT:
sed [-n] [-e kom.] [-f kom._fajl] [fajl]...
OPISANIE:
Redaktor sed perepisyvaet po umolchaniyu informaciyu iz
fajla standartnogo vvoda v fajl standartnogo vyvoda,
izmenyaya ih v sootvetstvii s programmoj redaktirova-
niya.
Esli pri vyzove sed zadan argument pri klyuche "-f", to
programma redaktirovaniya beretsya iz fajla "kom._fajl";
fajlov s programmami redaktirovaniya mozhet byt' nes-
kol'ko. Esli pri vyzove zadan tol'ko argument pri klyu-
che "-e" i ne zadano ni odnogo argumenta pri klyuche
"-f", to klyuch "-e" mozhet byt' opushchen. Argument pri
klyuche "-n" ukazyvaet fajl, v kotoryj zapisyvaetsya re-
zul'tat redaktirovaniya. Programma redaktirovaniya sos-
toit iz komand, raspolagayushchihsya po odnoj na stroke, i
imeyushchih sleduyushchij format:
[adres [, adres]] imya_komandy [argumenty]
Poryadok raboty redaktora: sed kopiruet stroki iz re-
daktiruemogo fajla v rabochuyu oblast', posledovatel'no
vypolnyaya vse komandy v oblast' dejstviya kotoryh vhodyat
stroki, nahodyashchiesya v rabochej oblasti; po zaversheniyu
programmy redaktirovaniya rabochaya oblast' kopiruetsya v
113
APK.00210-01 33 01-5
standartnyj fajl vyvoda (krome sluchaya, kogda zadan ar-
gument pri klyuche -n). Posle chego rabochaya oblast' unich-
tozhaetsya.
Oblast'yu dejstviya komandy yavlyaetsya:
- desyatichnoe chislo, sootvetstvuyushchee poryadkovomu
nomeru vvedennoj stroki (bez obnuleniya schetchika
strok pri perehode k sleduyushchemu redaktiruemomu
fajlu);
- simvol "$" - sootvetstvuyushchij poslednej stroke
redaktiruemogo fajla;
- "regulyarnoe vyrazhenie" prakticheski polnost'yu
sovpadayushchee s regulyarnym vyrazheniem, primenyaemym
v ed s tem otlichiem, chto posledovatel'nost' sim-
volov "0 sootvetstvuet simvolu novoj stroki,
vvedennomu v rabochuyu oblast'.
Esli pri komande ne zadana oblast' dejstviya, to koman-
da obrabatyvaet vsyu rabochuyu oblast'.
Esli pri komande zadana oblast' dejstviya, to komanda
obrabatyvaet kazhduyu stroku, sootvetstvuyushchuyu ukazannoj
oblasti dejstviya.
Esli pri komande zadan diapazon (t.e. dva obrazca,
razdelennye zapyatoj), to ona primenima k pervoj stro-
ke, kotoraya sootvetstvuet pervomu obrazcu i vsem pos-
leduyushchim strokam vklyuchaya stroku, sootvetstvuyushchuyu vto-
114
APK.00210-01 33 01-5
romu obrazcu. Posle etogo v sleduyushchih strokah obraba-
tyvaemogo fajla delaetsya popytka snova najti stroku,
kotoraya sootvetstvuet pervomu obrazcu, i process pov-
toryaetsya.
Ispol'zovanie komandy otricaniya "!" privodit k tomu,
chto sleduyushchaya za nej komanda (zapicannaya na odnoj c
nej ctpoke), ppimenyaetcya tol'ko k tem strokam, koto-
rye ne sootvetstvuyut ukazannoj oblasti dejstviya.
Argument, oboznachaemyj text, sostoit iz strok, kazhdaya
iz kotoryh, isklyuchaya poslednyuyu, zakanchivaetsya simvolom
'/ , neobhodimym dlya togo, chtoby skryt' escape-
posledovatel'nost' "novaya stroka". Simvoly '/ traktu-
yutsya redaktorom libo kak simvoly '/ v zameshchayushchej
stroke komandy s, libo ispol'zuyutsya dlya vyvoda v re-
zul'tiruyushchij fajl prisutstvovavshih v redaktiruemom
tekste simvolov probela i tabulyacii (simvol '/ dolzhen
stoyat' pered znakom tabulyacii ili trebuemym chislom
probelov); v protivnom sluchae probely i simvoly tabu-
lyacii unichtozhayutsya.
Argument, oboznachaemyj rfile ili wfile, dolzhen stoyat'
poslednim v stroke, soderzhashchej komandu redaktirovaniya;
komandu i etot argument dolzhen razdelyat' tochno odin
probel. Kazhdyj argument wfile sozdaetsya pered nachalom
obrabotki. Komandam odnovremenno mozhet byt' zadano ne
bolee desyati razlichnyh argumentov wfile.
(1)a text
115
APK.00210-01 33 01-5
Dobavit'. Pomeshchaet text v rezul'tiruyushchij fajl
pered chteniem sleduyushchej stroki redaktiruemogo
fajla.
(2)b label
Perehod na komandu ":" s metkoj label. Esli
"label" otsutstvuet, to perehodyat na konec prog-
rammy redaktirovaniya.
(2)c text
Izmenit'. Komanda "s" udalyaet stroki, vybrannye
po zadannoj oblasti dejstviya, i zameshchaet ih
strokami argumenta text.
(2)d Unichtozhit' rabochuyu oblast'.
(2)D Unichtozhit' nachal'nyj segment rabochej oblasti do
pervoj escape-posledovatel'nosti "novaya stroka".
(2)g Zamenit' soderzhimoe rabochej oblasti soderzhimym
sohranyaemogo bufera.
(2)G Dobavit' soderzhimoe sohranyaemogo bufera k soder-
zhimomu rabochej oblasti.
(2)h Zamenit' soderzhimoe sohranyaemogo bufera na so-
derzhimoe rabochej oblasti.
(2)H Dobavit' soderzhimoe rabochej oblasti k sohranya-
emomu buferu.
(1)i text
116
APK.00210-01 33 01-5
Vvesti. Pomestit' text v standartnyj fajl vyvo-
da.
(2)n Skopirovat' rabochuyu oblast' v standartnyj fajl
vyvoda. Zamenit' rabochuyu oblast' sleduyushchej vvo-
dimoj strokoj.
(2)N Dobavit' sleduyushchuyu vvodimuyu stroku k rabochej ob-
lasti, soderzhashchej simvoly "'0. Nomer tekushchej
stroki izmenitsya.
(2)p Napechatat'. Zapisat' rabochuyu oblast' v stan-
dartnyj fajl vyvoda.
(2)P Zapisat' nachal'nyj segment rabochej oblasti do
pervogo simvola novoj stroki v standartnyj fajl
vyvod.
(1)q Vyjti. Perejti na konec programmy redaktirova-
niya.
(1)r rfile
Prochest' soderzhimoe rfile. Pomestit' ego v re-
zul'tiruyushchij fajl pered prochteniem novoj vvodi-
moj stroki.
(2)s/ regulyarnoe vyrazhenie / zamena / flagi
Podstavit' stroku zameny iz regulyarnogo vyrazhe-
niya vmesto sootvetstvuyushchih obrazcov v rabochuyu
oblast'. Kak i v redaktore ed , vmesto simvola
'/' mozhet stoyat' lyuboj simvol. Kolichestvo flagov
117
APK.00210-01 33 01-5
mozhet byt' lyubym. Oni imeyut sleduyushchie znacheniya:
g Global'nyj. Podstavit' vmesto vseh vhozhde-
nij nesovpadayushchih regulyarnyh vyrazhenij, a
ne tol'ko vmesto pervogo;
p Raspechatat' rabochuyu oblast' pri uslovii,
chto podstanovka byla vypolnena;
w file
Zapisat'. Esli byla provedena zamena, do-
bavit' k file rabochuyu oblast';
(2)t label
Proverit'. Esli posle samogo poslednego chteniya
ili ispolneniya komandy t byla provedena lyubaya
podstanovka perejti na komandu ":" s metkoj
label. Esli metka otsutstvuet, perejti na konec
programmy redaktirovaniya;
(2)w file
Zapisat'. Dobavit' rabochuyu oblast' k file;
(2)x Pomenyat' soderzhimoe rabochej oblasti na soderzhi-
moe sohranyaemogo bufera;
(2)y/stroka1/stroka2/
Preobrazovat'. Zamenit' vse vhozhdeniya simvolov,
obrazuyushchih stroku1, na sootvetstvuyushchie simvoly
iz stroki2. Dliny stroki1 i stroki2 dolzhny sov-
padat';
118
APK.00210-01 33 01-5
(2)! komanda
Otricanie. Primenenie komandy otricaniya "!" pri-
vodit k tomu, chto sleduyushchaya za nej komanda (ili
gruppa komand, esli komandoj yavlyaetsya {...} ),
zapisannaya na odnoj s nej stroke, primenyaetsya
tol'ko k tem strokam, kotorye ne sootvetstvuyut
ukazannoj oblasti dejstviya;
(0):metka
Po etoj komande nikakih dejstvij ne proizvodit-
sya. Pri etoj komande stoit metka na kotoruyu pe-
rehodyat po komandam t i b;
(1)= Ravenstvo. Po komande "=" v standartnyj fajl vy-
voda zapisyvaetsya nomer stroki, imeyushchej ukazan-
nuyu pri komande oblast' dejstviya;
(2){ Ispolnit' sleduyushchie komandy do simvola } tol'ko
posle vybora rabochej oblasti.
Pustaya komanda propuskaetsya.
DOPOLNITELXNYE SSYLKI :
ed, grep, awk, lex
119
APK.00210-01 33 01-5
IMYA:
send - peredat' zadanie na obrabotku v OS ES
FORMAT:
send [-klyuchi] [fajl ...]
gath [-klyuchi] [fajl ...]
OPISANIE:
Komandoj send formiruetsya i peresylaetsya fajl, soder-
zhashchij zadanie dlya OS ES. Zadanie dolzhno byt' oformleno
v sootvetstvii trebovanij YAUZ OS ES. Peresylka fajla
zadaniya komandoj send ispol'zuet mehanizm modelirova-
niya ustrojstv edinichnyh zapisej metodom nakopleniya,
rezhimy dejstviya kotorogo ustanavlivayutsya komandoj MVM
SPOOL. Takim obrazom sozdannyj fajl komanda send per-
foriruet na virtual'nom perfokartochnom vyvode komandoj
vmpunch v fajl nakopleniya dlya VM OS ES.
Sostoyanie zadaniya dlya OS ES mozhno poluchit' posredstvom
ispol'zovaniya komandy st.
Komanda send obespechivaet fajl zadaniya v vide sbornogo
vvodnogo potoka iz neskol'kih istochnikov vvoda. Voz-
mozhnymi istochnikami vvoda yavlyayutsya:
- obychnye fajly DEMOS;
- standartnyj vvod;
- vyvodnye fajly komand DEMOS.
120
APK.00210-01 33 01-5
Formiruemyj vvodnoj potok napravlyaetsya send vo vremen-
nyj fajl, v kotorom posle zameny i podstanovki pere-
mennyh soderzhitsya sobstvenno zadanie OS ES. Ukazanie
dejstvuyushchih opcij komandy send, istochnikov vvoda, a
takzhe dejstvitel'nyh znachenij peremennyh v obrazah
kart fajla zadaniya osushchestvlyaetsya s pomoshch'yu vnutrennih
komand. Stroki, nachinayushchiesya s ~, interpretiruyutsya kak
vnutrennie komandy, kontroliruyushchie vypolnenie send.
Oni mogut ustanavlivat', ili povtorno ustanavlivat'
spisok dejstvuyushchih opcij, opredelyat' zameny
pepemennyx, otkpyvat' novye istochniki vvoda vnutri te-
kushchego istochnika.
send upravlyaetsya sleduyushchimi vnutrennimi komandami:
^-flags
spisok opcij ustanavlivaet rezhimy funkcionirova-
niya send;
^+flags
spisok opcij pereustanavlivaet rezhimy, ranee us-
tanovlennye dlya send;
^+:promt
raspechatat' podskazku na terminale;
^-:promt
pacpechatat' podckazky, tol'ko esli v kachestve
standartnogo vvoda raspredelen terminal;
^!command
121
APK.00210-01 33 01-5
vypolnit' ukazannuyu komandu DEMOC, vyzvav
intepppetatop SHELL. Po umolchaniyu v kachestve
fajla standartnogo vvoda opredelyaetsya /dev/null.
Standartnyj vyvod komandy DEMOS opredelyaetsya v
kachestve vvoda komandy send;
^^comment
ispol'zuetsya dlya vozmozhnosti kommentirovat'
programmu, ne popadaet v formiruemyj komandoj
send vvodnoj potok;
^=:keyword;default
rezul'tatom obrabotki etoj vnutrennej komandy
yavlyaetsya raspredelenie terminala v kachestve
fajla vvoda, v celyah ispol'zovat' vvodnuyu stroku
v vide dejstvitel'nogo znacheniya klyuchevogo para-
metra, imya kotorogo ukazano v komande. Prinima-
etsya znachenie po ymolchaniyu, ecli vvoditcya pyctaya
ctpoka;
^keyword=string
zamena peremennoj v klyuchevom opepande;
^file raspredelit' v kachestve vvoda fajl s ukazannym
imenem dlya formirovaniya vvodnogo potoka send;
^*file
raspredelit' v kachestve vvoda fajl s ukazannym
imenem, ne proizvodya translyaciyu registra ili za-
meshchenie klyuchevogo slova i schitaya stroki s vnut-
122
APK.00210-01 33 01-5
rennimi komandami obychnym tekstom. Edinstvennoj
obrabotkoj dannyh budet proverka na prevyshenie
kazhdoj strokoj makcimal'nogo pazmepa;
^?file
raspredelit' v kachestve vvoda fajl s ukazannym
imenem ne proizvodya translyaciyu registra ili za-
meshchenie klyuchevogo slova i schitaya stroki s vnut-
rennimi komandami obychnym tekstom. Edinstvennoj
obrabotkoj dannyh budet ih blokirovanie v
80-bajtnye zapici;
^==keyword;n
peredat' sleduyushchie n strok iz upravlyayushchego fajla
v vvodnoj potok, esli ne vvedeno imya peremennogo
klyuchevogo parametra, ili esli eto imya vvedeno, a
s terminala, raspredelennogo v kachestve istochni-
ka znachenij peremennyh, vvoditsya pustaya stroka.
n po umolchaniyu prinimaet znachenie=1;
-uUSER
imya pol'zovatelya DEMOS, kotoromu raspredelyayutsya
vyvodnye fajly (po umolchaniyu ispol'zuetsya imya
pol'zovatelya, poslavshego komandy send);
-cLINK
imya linii v PDP, na kotoroj raspredelyaetsya vy-
vodnoj fajl (tekushchee imya po ymolchaniyu 'COMPLEX
1');
123
APK.00210-01 33 01-5
-l raspredelit' fajl standartnogo vyvoda i otobra-
zit' na nem obrazy kart fajla zadaniya;
-q ne peredavat' v fajle zadaniya operatory YAUZ OC
EC;
-f proizvesti translyaciyu ctpochnyx bykv v ppopicnye;
-t vosproizvesti v raspechatke generaciyu operatorov
YAUZ OS ES pered i posle zameshcheniya;
-k vyklyuchit' zameshchenie klyuchevyh slov dlya neyppavlya-
yushchix ctpok;
-r vypolnit' perekodirovku koda KOI-8 v DKOI;
-e steret' vse predydushchie oppedeleniya klyuchevogo
clova;
-i ne intepppetipovat' stroki vnutrennih komand vo
vklyuchaemyh istochnikah, schitaya ih tekstom. Pre-
duprezhdenie: ustanovlennyj flag ne podlezhit
pepeyctanovke;
-s proizvesti zameshchenie klyuchevogo slova pered
intepppetaciej yppavlyayushchix ctpok;
-d vyvesti na displej tekushchie opredeleniya klyuchevogo
slova (ispol'zuemye pepvonachal'no dlya otladki).
Komandnye stroki (nachinayushchiesya s ^) v dejstvuyushchem po
umolchaniyu pezhime +i intepppetipyyutcya v kachestve komand
upravleniya rabotoj send. Flag -s obespechivaet operezha-
124
APK.00210-01 33 01-5
yushchuyu zamenu klyuchevyh clov otdeleniyu i intepppetacii
vnutrennih komand send. send obychno ne soderzhit speci-
al'nyh simvolov v komandnyh strokah. Odnako oni dopus-
kayutsya. Togda podskazki, klyuchevye slova, znacheniya po
umolchaniyu i stroki zameny, soderzhashchie special'nye sim-
voly dolzhny zaklyuchat'sya v kavychki (" ").
send obespechivaet gibkost' formirovaniya operatorov YAUZ
OS ES na osnove sostavlennyh zagotovok s pomoshch'yu meha-
nizma podskazki i opredeleniya klyuchevyh slov. Obychno
send vyzyvaetsya v komandnom fajle SHELL ili v program-
me C. V programme proizvoditsya sborka opredelenij klyu-
chevyh slov v fajl, a zatem vyzyvaetsya send s peredachej
imeni fajla, soderzhashchego eti opredeleniya. Fajl oprede-
lenij klyuchevyh slov ostaetsya aktivnym na protyazhenii
obrabotki vsego vhodnogo potoka. Tak chto skanirovaniem
vyyavlyayutsya stroki s klyuchevymi clovami, kotopym oprede-
leny znacheniya. Nesootvetstvuyushchie simvoly vyvodyatsya v
tom vide, v kotorom oni nahodyatsya (ili perevodyatsya v
verhnij registr, esli ustanovlen flag -f). Klyuchevym
parametrom yavlyaetsya proizvol'naya stroka simvolov v
KOI-8, dlya kotoroj byla opredelena stroka zameshcheniya.
Dlya naglyadnosti rekomenduetsya vydelyat' peremennye klyu-
chevye parametry lidiruyushchim ampersandom (&), hotya eto
ne obyazatel'no.
Obrabotkoj send peremennye klyuchevye parametry zamenya-
yutsya sootvetstvuyushchej strokoj zameshchenij, kotoraya zatem
posimvol'no vyvoditsya. Proverka razmera strok (napri-
125
APK.00210-01 33 01-5
mer po ^*file) otkladyvaetsya do okonchaniya proizvodstva
v nej vseh zameshchenij.
Zameshchenie klyuchevogo slova mozhet byt' vremenno vyklyuche-
no putem ustanovki flaga -k. Esli proishodit pereopre-
delenie klyuchevogo slova, zameshchaetsya znachenie zameshche-
niya. Predydushchie opredeleniya klyuchevogo slova mogut byt'
polnost'yu sterty putem ispol'zovaniya flaga -e.
send ne proveryaet sintaksis generiruemyh operatorov
YAUZ. Odnako ona proveryaet, chtoby razmer stroki teksta
posle zameshcheniya ne prevyshal 80 bajtov. Drugimi
procedurnymi oshibkami yavlyayutsya: oshibki otkrytiya i za-
pisi v fajly, a takzhe anomal'nye vyhody iz SHELL.
Oshibki sobirayutsya v fajl diagnostiki, a o predstavle-
nii vhodnogo potoka zadanij na obrabotku v OS ES send
signaliziruet na terminal utverditel'nym soobshcheniem.
Kogda komanda vyzyvaetsya pod imenem gath ona ustanav-
livaet flag -lq. Rezul'tat vypolneniya zadanij v OS ES
mozhno vozvratit' v DEMOS, ispol'zuya komandu demsend.
Listing operatorov YAUZ mozhno vozvratit' v DEMOS,
Ispol'zuya kartu DEMROUTE.
FAJLY:
usr/spool/send *
vremennyj fajl dlya formirovaniya vhodnogo potoka.
DOPOLNITELXNYE SSYLKI:
sh, st, vmread, demsend
126
APK.00210-01 33 01-5
DIAGNOSTIKA:
Otmechaetsya prevyshenie stroki vhodnogo potoka 80 simvo-
lov, posle podstanovki znachenie peremennoj klyuchevogo
parametra. Vyvoditsya predlozhenie: vvesti simvol y dlya
raspechatki kakih-libo oshibok.
127
APK.00210-01 33 01-5
IMYA:
sendmvt - skopirovat' fajl DEMOS v nabor dannyh OS ES.
FORMAT:
sendmvt [demos_fajl [os_es_fajl [fajl_vyvoda]]]
OPISANIE:
sendmvs pozvolyaet pol'zovatelyu kopirovat' fajl DEMOS
v posledovatel'nyj nabor dannyh ili razdel biblioteki
OS ES. |to osushchestvlyaetsya formirovaniem zadaniya kopi-
rovaniya i peredachej ego v sredu paketnoj obrabotki OS
ES.
Parametry komandy sendmvt ispol'zuyutsya v komandnyh
strokah, upravlyayushchih zamenoj peremennyh v klyuchevyh
papametpax opepatopov YAUZ formiruemogo zadaniya. Sposob
ih zadaniya mozhet byt' yavnym, v sostave komandy, ili
oni vvodyatsya v otvet na podskazku.
Imya "os_es_fajl" mozhet byt' prostym ili sostavnym, na
osnove trebovanij specifikacii imen naborov dannyh OS
ES. Esli fajl DEMOS dolzhen stat' razdelom bibliotechno-
go nabora dannyh, imya razdela ukazyvaetsya za imenem
nabora v kavychkah.
Kopirovanie osushchestvlyaetsya kak v uzhe sushchestvuyushchij
nabor dannyh, tak i novyj nabor dannyh. Poetomu vyda-
etsya zapros sushchestvuet-li uzhe nabor OS ES. Esli vvo-
ditsya y, to schitaetsya, chto nabor uzhe sushchetvuet i kata-
logizirovan v sisteme OS ES. Na otvet n, oznachayushchij
128
APK.00210-01 33 01-5
sozdanie vnov' nabora, vydaetsya podskazka o neobhodi-
mosti vvesti informaciyu harakteristik budushchego nabora.
"fajl_vyvoda" yavlyaetsya imenem fajla DEMOS. |tot fajl
budet ispol'zovat'sya utilitoj vmread dlya vyvoda re-
zul'tatov vypolneniya zadaniya kopirovaniya.
FAJLY:
/usr/lib/model/sendmvt
obrazec zadaniya dlya OS ES
/tmp/sendmvt.*
vpemennyj yppavlyayushchij fajl send
DOPOLNITELXNYE SSYLKI:re
send ,vmread
129
APK.00210-01 33 01-5
IMYA:
sh, for, case, if, while, :, ., break, continue, cd,
eval, exec, exit, export, login, newgrp, read,
readonly, set, shift, times, trap, umask, wait - ko-
mandnyj yazyk.
FORMAT:
sh [-ceiknrstuvx] [par] ...
OPISANIE:
Komanda sh vyzyvaet interpretator yazyka upravleniya za-
daniyami SHELL, kotoryj yavlyaetsya osnovnym yazykom obshche-
niya pol'zovatelya s sistemoj. Krome togo SHELL ochen'
shiroko primenyaetsya i v kachestve yazyka razrabotki prog-
ramm.
KOMANDY:
Prostaya komanda predstavlyaet soboj posledovatel'nost'
slov, razdelennyh "probelami" (probelami, znakami ta-
bulyacii ili simvolami novoj stroki). Pervoe slovo op-
redelyaet imya komandy, kotoraya dolzhna byt' vypolnena.
Ostal'nye slova peredayutsya v kachestve parametrov vyzy-
vaemoj komandy. Imya komandy yavlyaetsya nulevym paramet-
rom . "Znacheniem" prostoj komandy yavlyaetsya ee kod za-
versheniya, esli ona vypolnena uspeshno, ili 200+kod - v
protivnom sluchae.
Neskol'ko komand, razdelennyh simvolom "|", predstav-
lyayut soboj kanal mezhprocessnoj svyazi. Informaciya, vy-
130
APK.00210-01 33 01-5
davaemaya v standartnyj fajl vyvoda odnoj komandoj,
mozhet peredavat'sya drugoj komande v kachestve stan-
dartnogo fajla vvoda. Pri etom sozdaetsya cepochka pro-
cessov - konvejer. Kazhdaya komanda vypolnyaetsya kak ot-
del'nyj process; sh zhdet okonchaniya translyacii posled-
nej iz vypolnyaemyh komand.
Spisok_komand predstavlyaet soboj posledovatel'nost' iz
odnoj ili neskol'kih prostyh komand, razdelennyh sim-
volami ";", "&", "&&" ili "||", i mozhet zakanchivat'sya
simvolami ";" ili "&". Simvoly ";", "&" i "&&", "||"
poparno imeyut odinakovyj prioritet, odnako, prioritet
pary "&" i "|" nizhe, chem u "&&" i "||". Tochka s zapya-
toj, stoyashchaya v konce spiska_komand, vyzyvaet posledo-
vatel'noe vypolnenie ukazannyh komand; ampersand uka-
zyvaet na to, chto sleduyushchaya komanda mozhet byt' vypol-
nena bez ozhidaniya zaversheniya predydushchej (fonovyj pro-
cess). Simvol "&&" ("||") razreshaet vypolnenie posle-
duyushchej komandy tol'ko v tom sluchae, esli kod zavershe-
niya predydushchej raven nulyu (ne raven nulyu). V kachestve
razdelitelej v spiskah komand vmesto tochki s zapyatoj
mogut ispol'zovat'sya simvoly novoj stroki.
Kod zaversheniya spiska_komand raven znacheniyu koda za-
versheniya poslednej prostoj komandy spiska.
Posledovatel'nost' komand mozhno zapisat' v fajl i vy-
polnit', ukazav imya etogo fajla. Dalee perechisleny os-
novnye konstrukcii komandnogo yazyka sh.
131
APK.00210-01 33 01-5
for imya [in slovo ...]
do spisok_komand
done
Pri kazhdom povtorenii cikla for "imya" ustanavli-
vaetsya na sleduyushchee znachenie v spiske "slovo
...". Esli konstrukciya "in slovo ..." otsutstvu-
et, to po umolchaniyu predpolagaetsya "in $@" (t.e.
cikl vypolnyaetsya odin raz dlya kazhdogo zadannogo
parametra).
case slovo in
[obr1 [|obr2]...) spisok_komand;;]
...
esac
Pri obnaruzhenii sootvetstviya "slova" odnomu iz
obrazcov, vypolnyaetsya zadannyj "spisok_komand".
Obrazec "*" sootvetstvuet lyuboj stroke.
if spisok_komand1
then spisok_komand2
[elif spisok_komand3 then spisok_komand4]
[else spisok_komand5]
Esli kod zaversheniya "spiska_komand1" raven nulyu,
vypolnyaetsya "spisok_komand2", inache - "spi-
sok_komand3" i, esli ego kod zaversheniya raven
nulyu, vypolnyaetsya "spisok_komand4". V protivnom
sluchae vypolnyaetsya "spisok_komand5".
132
APK.00210-01 33 01-5
while spisok_komand1
[do spisok_komand2]
done
Esli kod zaversheniya "spiska_komand1" raven nulyu,
vypolnyaetsya "spisok_komand2" i cikl povtoryaetsya,
inache - vypolnenie cikla zakanchivaetsya.
until spisok_komand1
[do spisok_komand2]
done
Esli kod zaversheniya "spiska_komand1" ne raven
nulyu, vypolnyaetsya "spisok_komand2" i cikl povto-
ryaetsya, inache - vypolnenie cikla zakanchivaetsya.
(spisok_komand)
Vypolnit' "spisok_komand", zapustiv sh v ka-
chestve podprocessa.
{spisok_komand;}
vypolnit' "spisok_komand".
K zarezervirovannym slovam interpretatora sh otnosyatsya
sleduyushchie slova: "if", "then", "else", "elif", "fi",
"case", "in", "esac", "for", "while", "until", "do",
"done", "{", "}". Oni raspoznayutsya tol'ko v tom slu-
chae, esli yavlyayutsya pervym slovom komandy i ne zaklyuche-
ny v kavychki.
PODSTANOVKA REZULXTATOV VYPOLNENIYA KOMAND:
133
APK.00210-01 33 01-5
Esli komanda zaklyuchena v obratnye apostrofy (``), ona
vypolnyaetsya i zameshchaetsya v komandnoj stroke rezul'ta-
tom svoego vypolneniya. |tot rezul'tat mozhet ispol'zo-
vat'sya kak chast' slova ili kak celoe slovo; simvoly
novoj stroki otbrasyvayutsya.
PODSTANOVKA ZNACHENIJ PARAMETROV:
Simvol "$" ukazyvaet na vypolnenie podstanovki znache-
nij parametrov. Komanda set prisvaivaet znacheniya pozi-
cionnym parametram. Peremennye ustanavlivayutsya sledu-
yushchim obrazom:
imya = znachenie [imya = znachenie] ...
${parametr}
"Parametr" mozhet byt' treh vidov: 1) posledova-
tel'nost' bukv, cifr ili simvolov podcherkivaniya
(t.e. opredelennoe "imya"), 2) cifra, 3) odin iz
simvolov * @ # ? - $ !. V rezul'tate vypolneniya
dannogo makrovyzova osushchestvlyaetsya podstanovka
znacheniya parametra (esli ono opredeleno). Figur-
nye skobki ispol'zuyutsya tol'ko v tom sluchae, es-
li posle "parametra" sleduet bukva, cifra ili
simvol podcherkivaniya, ne yavlyayushchiesya chast'yu ego
imeni. Esli "parametr" predstavlyaet soboj cifru,
to on schitaetsya pozicionnym. Esli "parametrom"
yavlyaetsya simvol * ili @, podstavlyayutsya znacheniya
vseh pozicionnyh parametrov (krome 0), razdelen-
134
APK.00210-01 33 01-5
nye probelami.
${parametr-slovo}
Esli "parametr" opredelen, podstavit' ego znache-
nie, inache podstavit' "slovo".
${parametr=slovo}
Esli "parametr" ne opredelen, prisvoit' emu zna-
chenie "slova" i vypolnit' podstanovku etogo zna-
cheniya. Znacheniya pozicionnyh parametrov takim
sposobom opredelyat'sya ne mogut.
${parametr?slovo}
Esli "parametr" opredelen, podstavit' ego znache-
nie; inache napechatat' "slovo" i prekratit' vy-
polnenie komandnogo fajla. Esli "slovo" ot-
sutstvuet, pechataetsya standartnoe diagnostiches-
koe soobshchenie.
${parametr+slovo}
Esli "parametr" opredelen, podstavit' "slovo", v
protivnom sluchae nichego ne podstavlyat'.
V privedennyh konstrukciyah komanda, opredelyaemaya
"slovom", ne budet vypolnyat'sya, esli "slovo" ne yavlya-
etsya podstavlyaemym znacheniem. (Takim obrazom, v prime-
re "echo {d-`pwd`}" komanda pwd budet vypolnyat'sya
tol'ko v tom sluchae esli parametr d ne opredelen).
Sleduyushchie "parametry" avtomaticheski opredelyayutsya in-
terpretatorom sh:
135
APK.00210-01 33 01-5
# Kolichestvo pozicionnyh parametrov;
- Klyuchi, kotorye vvodyatsya pri vyzove ili s pomoshch'yu
komandy set;
? Kod zaversheniya poslednej vypolnennoj komandy;
$ Nomer tekushchego processa;
! Nomer processa poslednej fonovoj komandy.
Sleduyushchie "parametry" ispol'zuyutsya, no ne opredelyayutsya
interpretatorom:
HOME Parametr soderzhit polnoe imya spravochnika (po
umolchaniyu - imya registracionnogo spravochnika)
dlya komandy cd, vyzyvaemoj bez parametrov;
PATH Spisok imen spravochnikov, v kotoryh proizvoditsya
poisk komand, otsutstvuyushchih v tekushchem spravochni-
ke;
MAIL Esli eta peremennaya opredelyaet imya fajla dlya
priema pochty, to sh budet informirovat' pol'zo-
vatelya o postuplenii pochty v ukazannyj fajl;
PS1 Podskazka interpretatora pri vvode komandy, po
umolchaniyu "$";
PS2 Podskazka interpretatora dlya prodolzheniya vvoda
(esli komanda ne byla zavershena na predydushchej
stroke), po umolchaniyu ">";
136
APK.00210-01 33 01-5
IFS Simvoly-razdeliteli komandnoj stroki; obychno
probel, znak tabulyacii i simvol novoj stroki.
INTERPRETACIYA RAZDELITELEJ:
V strokah, poluchennyh posle podstanovki znachenij para-
metrov i rezul'tatov vypolneniya komand, osushchestvlyaetsya
poisk simvolov-razdelitelej (opredelennyh v $IFS). V
mestah nahozhdeniya takih simvolov stroki razbivayutsya na
otdel'nye parametry. Pustye parametry, opredelennye
yavno (" " ili ' '), sohranyayutsya. Pustye stroki, polu-
chennye v rezul'tate vypolneniya parametrov, u kotoryh
net znachenij, otbrasyvayutsya.
GENERACIYA IMEN FAJLOV:
Posle podstanovok i interpretacii simvolov-
razdelitelej v kazhdom slove komandy osushchestvlyaetsya
poisk simvolov *, ?, i [. Esli vstrechaetsya odin iz
etih simvolov, to dannoe slovo schitaetsya obrazcom i
zamenyaetsya sootvetstvuyushchim spiskom imen fajlov, raspo-
lozhennyh v alfavitnom poryadke. Esli obrazcu ne soot-
vetstvuet ni odno iz ukazannyh imen fajlov, to eto
slovo ostaetsya neizmennym. Simvol "." v nachale imeni
fajla dolzhen ukazyvat'sya yavno.
* Sootvetstvuet lyuboj stroke, v tom chisle pustoj;
? Sootvetstvuet lyubomu odinochnomu simvolu;
[...] Sootvetstvuet lyubomu iz perechislennyh simvolov.
137
APK.00210-01 33 01-5
Para simvolov, razdelennaya simvolom "-", soot-
vetstvuet lyubomu simvolu iz ukazannogo leksiches-
kogo promezhutka.
|KRANIROVANIE:
Sleduyushchie simvoly imeyut special'noe znachenie dlya in-
terpretatora sh i vyzyvayut preryvanie vypolneniya ko-
mandy, esli oni ne byli ekranirovany: ";", "&", "(",
")", "|", "<", ">", novaya_stroka, probel, tabulyaciya.
Simvol mozhet byt' ekranirovan, esli emu predshestvuet
. Dlya zapisi dlinnyh konstrukcij bolee chem v odnoj
stroke, special'noe znachenie simvola novoj stroki "0
otmenyaetsya. Vse simvoly, zaklyuchennye v apostrofy ('
'), za isklyucheniem samogo apostrofa, yavlyayutsya ekrani-
rovannymi. Podstanovka znachenij parametrov i rezul'ta-
tov vypolneniya komand vypolnyaetsya vnutri kavychek ("
"). Simvol ekraniruet simvoly , `, " i $.
"$*" ekvivalentno "$1 $2 ..."
"$@" ekvivalentno "$1" "$2" ... .
PODSKAZKI:
V interaktivnom rezhime, pered schityvaniem komandy, sh
pechataet znachenie peremennoj PS1 (po umolchaniyu - $).
Esli vvedennaya stroka soderzhit sintaksicheski nezaver-
shennuyu konstrukciyu, to dlya prodolzheniya vvoda interpre-
tator vydaet v kachestve podskazki znachenie peremennoj
PS2 (po umolchaniyu - simvol >).
138
APK.00210-01 33 01-5
VVOD-VYVOD:
Dlya zadaniya fajlov vvoda/vyvoda ispol'zuyutsya special'-
nye konstrukcii. Oni mogut nahodit'sya v lyubom meste
prostoj komandy. Pered ispol'zovaniem "slova" ili
"cifry" vypolnyayutsya vse neobhodimye podstanovki.
<slovo
Fajl "slovo" naznachaetsya standartnym fajlom vvo-
da (deskriptor fajla 0).
>slovo
Fajl "slovo" naznachaetsya standartnym fajlom vy-
voda (deskriptor fajla 1). Esli fajl ne su-
shchestvuet, on sozdaetsya; v protivnom sluchae on
usekaetsya do nulevoj dliny.
>>slovo
Fajl "slovo" naznachaetsya standartnym fajlom vy-
voda. Esli fajl sushchestvuet, vyvodimaya informaciya
dobavlyaetsya k ego soderzhimomu; v protivnom slu-
chae fajl sozdaetsya.
<<slovo
Vvod osushchestvlyaetsya do teh por, poka ne vstrecha-
etsya posledovatel'nost' simvolov "slovo". Polu-
chennyj lokal'nyj fajl yavlyaetsya standartnym
fajlom vvoda. Esli kakoj-libo simvol "slova" ek-
ranirovan, ne proizvoditsya nikakoj interpretacii
simvolov lokal'nogo fajla; v protivnom sluchae
139
APK.00210-01 33 01-5
proizvoditsya podstanovka znachenij parametrov i
rezul'tatov vypolneniya komand, simvol novoj
stroki ignoriruetsya, a znak ispol'zuetsya
dlya ekranirovaniya simvolov , $, ` i pervogo
simvola "slova".
<&cifra
Informaciya, zapisyvaemaya v fajl s deskriptorom
"cifra", peredaetsya v standartnyj fajl vyvoda.
>&cifra
Standartnym fajlom vvoda yavlyaetsya fajl s
deskriptorom "cifra".
<&- Standartnyj fajl vvoda zakryt na zapis'.
>&- Standartnyj fajl vyvoda zakryt na chtenie.
Esli kakoj-libo iz ukazannyh konstrukcij predshestvuet
cifra, to deskriptor sozdavaemogo fajla opredelyaetsya
etoj cifroj (vmesto 0 ili 1 po umolchaniyu).
VSTROENNYE KOMANDY:
Vstroennye komandy prakticheski ne otlichayutsya po svoim
svoistvam ot ostal'nyh komand sistemy, za isklyucheniem
togo, chto dlya nih obychno nel'zya pereopredelit' stan-
dartnye fajly vvoda/vyvoda.
: Komanda ne proizvodit nikakih dejstvij, za
isklyucheniem podstanovki znachenij makroperemen-
nyh. Kod zaversheniya raven nulyu.
140
APK.00210-01 33 01-5
. fajl
Vypolnit' komandnyj "fajl" v ramkah tekushchego
processa.
cd [spravochnik]
Ob'yavit' ukazannyj "spravochnik" tekushchim. Esli
parametr ne zadan, v kachestve imeni spravochnika
ispol'zuetsya znachenie makroperemennoj HOME.
eval [komanda ...]
Provesti vse makropodstanovki i vypolnit' "ko-
mandu ...".
exec [komanda ...]
Tekushchij process zamenit' processom vypolneniya
"komandy ...". Dopuskaetsya pereopredelenie stan-
dartnyh fajlov vvoda/vyvoda.
exit [N]
Preryvanie vypolneniya tekushchego processa s kodom
zaversheniya N. Esli N otsutstvuet, kod zaversheniya
opredelyaetsya kodom zaversheniya poslednej vypol-
nennoj komandy.
export [imya...]
Ukazannye makroperemennye avtomaticheski vvodyatsya
v sredu vypolnyaemyh vposledstvii komand. Esli
parametry ne zadany, vydaetsya spisok imen
eksportiruemyh makroperemennyh.
login [par ...]
141
APK.00210-01 33 01-5
Registraciya pol'zovatelya v sisteme bez sozdaniya
novogo processa (ekvivalent komandy "exec login
par...").
newgrp [par ...]
Zamena tekushchego identifikatora gruppy pol'zova-
telej (ekvivalent komandy "exec newgrp par...").
read imya ...
Iz standartnogo fajla vvoda schityvaetsya odna
stroka. Zatem makroperemennym "imya ..." posledo-
vatel'no prisvaivayutsya znacheniya slov, sostavlya-
yushchih etu stroku. Kod zaversheniya komandy raven
nulyu vo vseh sluchayah, krome teh, kogda spisok
parametrov dlinnee, chem chislo slov v schitannoj
stroke.
readonly imya ...
Zapreshchaetsya pereopredelenie perechislennyh
makroperemennyh. Esli parametry ne zadany, vyda-
etsya spisok vseh makroperemennyh, opredelennyh
kak "readonly" (tol'ko dlya chteniya).
set [-eknptuvx [par ...]]
Ustanavlivaet rezhimy raboty interpretatora sh.
Mogut zadavat'sya sleduyushchie klyuchi:
-e V neinteraktivnom rezhime vyzyvaet nemed-
lennoe preryvanie pri obnaruzhenii oshibki v
vypolnenii komandy;
142
APK.00210-01 33 01-5
-k Vse opredelennye makroperemennye eksporti-
ruyutsya v sredu zapuskaemyh processov;
-n Proizvodit tol'ko sintaksicheskuyu proverku
komand;
-t Preryvaet vypolnenie processa posle togo,
kak budet schitana i vypolnena odna koman-
da;
-u Ustanavlivaet rezhim diagnostiki oshibki pri
popytke ispol'zovat' neopredelennye pere-
mennye;
-v Ustanavlivaet rezhim pechati vvodimyh strok
po mere ih schityvaniya;
-x Raspechatyvaet komandy i ih parametry po
mere vypolneniya;
- Otmenyaet klyuchi -x i -v.
Ustanovlennye klyuchi soderzhatsya v makroperemennoj "-".
Ostal'nym parametram prisvaivayutsya znacheniya pozicion-
nyh parametrov "1, 2, ...". Esli parametry ne zadany,
pechataetsya spisok znachenij vseh makroperemennyh;
shift Pozicionnym parametram "2, 3, ..." prisvaivayutsya
znacheniya parametrov "1, 2, ..." sootvetstvenno;
times Vydaetsya vremya, zatrachennoe pol'zovatelem i sis-
temoj na vypolnenie processa;
143
APK.00210-01 33 01-5
trap [komanda] [N ...]
Pri poluchenii perechislennyh signalov vypolnyaetsya
ukazannaya "komanda";
umask [ddd]
Maske sozdaniya fajlov pol'zovatelya prisvaivaetsya
vos'merichnyj kod ddd . Esli parametr ddd opushchen,
vydaetsya tekushcheee znachenie maski;
wait [n]
Ozhidaet okonchaniya vypolneniya processa s nomerom
n i prisvaivaet ego kod zaversheniya makroperemen-
noj "?".
VYZOV INTERPRETATORA:
Esli pervym simvolom parametra "0" yavlyaetsya znak "-",
to komandy schityvayutsya iz fajla .profile. Pri vyzove
mogut ukazyvat'sya sleduyushchie klyuchi:
-c stroka
Komandy schityvayutsya iz "stroki";
-s Komandy schityvayutsya iz standartnogo fajla vvoda.
Soobshcheniya interpretatora zapisyvayutsya v stan-
dartnyj fajl diagnostik (fajl s deskriptorom 2);
-i Interaktivnyj rezhim raboty interpretatora.
FAJLY:
$HOME/.profile
/tmp/sh*
144
APK.00210-01 33 01-5
/dev/null
DOPOLNITELXNYE SSYLKI :
csh, test, exec
DIAGNOSTIKA:
Oshibki, obnaruzhennye interpretatorom (naprimer, sin-
taksicheskie oshibki), privodyat k tomu, chto sh vozvrashcha-
et kod zaversheniya, ne ravnyj nulyu. Esli pri etom rezhim
raboty - neinteraktivnyj, to vypolnenie komandnogo
fajla prekrashchaetsya. Esli zhe rezhim raboty interaktiv-
nyj, sh vozvrashchaet kod zaversheniya poslednej vypolnen-
noj komandy.
145
APK.00210-01 33 01-5
IMYA:
size - soobshchit' razmer ob'ektnogo fajla
FORMAT:
size [obfajl...]
OPISANIE:
Komanda size pechataet (desyatichnoe) chislo bajtov, zani-
maemoe tekstovym segmentom, segmentom dannyh i bss, a
takzhe ih summu v desyatichnom i vos'merichnom kode dlya
kazhdogo ob'ektnogo fajla "obfajl", ukazannogo v para-
metrah.
146
APK.00210-01 33 01-5
IMYA:
sleep - zaderzhat' vypolnenie na zadannyj interval
FORMAT:
sleep vremya
OPISANIE:
Komanda sleep zaderzhivaet vypolnenie na "vremya"
sekund. Ona ispol'zuetsya dlya vypolneniya komandy cherez
opredelennyj promezhutok vremeni, naprimer:
(sleep 105; komanda)
ili dlya vypolneniya komandy vremya ot vremeni, naprimer,
while true
do
komanda
sleep 37
done
ZAMECHANIYA:
"vremya" dolzhno byt' men'she 2 147 483 647 sekund.
147
APK.00210-01 33 01-5
IMYA:
soelim - fil'tr dlya tekstovyh fajlov v formate pif.
FORMAT:
soelim [fajl...]
OPISANIE:
Komanda perepisyvaet fajly (po umolchaniyu standartnyj
fajl vvoda) v standartnyj fajl vyvoda, zamenyaya direk-
tivy pif vida:
.so nekotoryj_fajl
soderzhimym ukazannyh fajlov. Poskol'ku takie program-
my, kak tbl, obychno ne delayut etogo, komanda soelim
neobhodima, kogda trebuetsya raspolagat' otdel'nye tab-
licy dokumenta v razlichnyh fajlah.
Zamet'te, chto eto vklyuchenie mozhet podavlyat'sya pos-
redstvom ispol'zovaniya "'" vmesto ".", t.e.
'so /usr/lib/tmac.s
Primer ispol'zovaniya komandy soelim:
soelim exum?.n | tbl | pif -ms | col | lpr
DOPOLNITELXNYE SSYLKI :
colcrt, more
ZAMECHANIYA:
Pered imenem fajla dolzhen byt' rovno odin probel, a
posle nego ne dolzhno byt' probelov.
148
APK.00210-01 33 01-5
IMYA:
sort - sortirovka i sliyanie fajlov
FORMAT:
sort [-mubdfinrtxz] [ +poz1 [-poz2] ]...
[-o imya] [-T spravochnik] [imya]...
OPISANIE:
Komanda sort sortiruet sovmestno stroki vseh ukazannyh
fajlov i zapisyvaet rezul'tat v standartnyj fajl vyvo-
da. Esli vhodnye fajly ne zadany (ili ukazan klyuch
"-"), sortiruetsya informaciya iz standartnogo fajla
vvoda.
Po umolchaniyu pri sortirovke rassmatrivaetsya vsya stro-
ka. Standartnym poryadkom sortirovki yavlyaetsya aflavit-
nyj (dlya bukv russkogo i latinskogo alfavita) i leksi-
kograficheskij pobajtnyj v sootvetstvii s chislennymi
znacheniyami kodov KOI-8 (dlya vseh ostal'nyh simvolov).
Dlya izmeneniya pravil sortirovki ispol'zuetsya klyuch, ko-
toryj mozhet soderzhat' sleduyushchie simvoly:
b Ignorirovat' vedushchie probely i simvoly tabulyacii
pri sravnenii polej;
d "Slovarnyj poryadok": pri sravnenii uchityvayutsya
tol'ko bukvy, cifry i probely;
f Ne razlichat' strochnye i propisnye bukvy;
i Ignorirovat' simvoly KOI-8 s kodami vne diapazo-
149
APK.00210-01 33 01-5
nov 040-0176 i 0300-0376 pri tekstovyh sravneni-
yah;
n Stroki nachinayushchiesya s chisel (vozmozhno s pred-
shestvuyushchimi probelami), sortiruyutsya po arifmeti-
cheskomu znacheniyu. Klyuch "n" podrazumevaet usta-
novku klyucha "b";
r Izmenit' poryadok sortirovki na obratnyj;
tx "Simvolom tabulyacii", razdelyayushchim polya, yavlyaetsya
simvol "x";
z Sortirovat' v sootvestvii s chislennym znacheniem
bajtov.
Zapis' "+poz1 -poz2" opredelyaet chast' stroki, kotoraya
rassmatrivaetsya pri sortirovke. Sortirovka nachinaetsya
s pozicii "poz1" i zakanchivayushchimsya pered poziciej
"poz2". Kazhdyj iz parametrov "poz1" i "poz2" imeet vid
"m.n", posle chego mogut sledovat' odin ili neskol'ko
flagov bdfinr, prichem m oznachaet kolichestvo polej, ko-
toroe dolzhno byt' propushcheno s nachala stroki, a n ozna-
chaet kolichestvo simvolov, kotoroe dolzhno byt' propushche-
no posle etogo. Esli prisutstvuyut kakie-libo flagi,
oni otmenyayut global'nye klyuchi uporyadochivaniya dlya
dannoj chasti stroki. Esli dejstvuet klyuch "b", "n"
otschityvaetsya ot pervogo (otlichnogo ot probela) simvo-
la polya; "b" dobavlyaetsya nezavisimo k "poz2".
Otsutstvie ".n" oznachaet ".o", otsutstvie "poz2" ozna-
150
APK.00210-01 33 01-5
chaet konec stroki. Pri nalichii klyucha "-tx" polyami schi-
tayutsya posledovatel'nosti simvolov, razdelyaemye simvo-
lom "x", esli klyuch "-tx" ne zadan v kachestve polej
rassmatrivayutsya posledovatel'nosti otlichnyh ot
probelov simvolov, razdelennye probelami.
Esli imeyutsya neskol'ko klyuchej sortirovki, posleduyushchie
klyuchi sravnivayutsya tol'ko posle togo, kak predydushchie
klyuchi okazalis' ravny. Stroki, kotorye pri sravnenii
okazalis' ravny, uporyadochivayutsya s uchetom vseh bajtov.
Raspoznayutsya takzhe sleduyushchie neobyazatel'nye parametry:
c Proverit', yavlyaetsya li vhodnoj fajl otsortiro-
vannym v sootvetstvii s zadannymi pravilami
uporyadochivaniya; ne vydavat' rezul'tat, esli fajl
ne otsortirovan;
m Tol'ko sliyanie, vhodnye fajly uzhe otsortirovany;
o Sleduyushchij parametr predstavlyaet soboj imya vyhod-
nogo fajla, kotoryj dolzhen ispol'zovat'sya vmesto
standartnogo fajla vyvoda. |tot fajl mozhet sov-
padat' s odnim iz vhodnyh fajlov;
T Sleduyushchij parametr predstavlyaet soboj imya spra-
vochnika, v kotorom dolzhny sozdavat'sya vremennye
fajly;
u Iz kazhdoj gruppy odinakovyh strok ostavit'
tol'ko odnu. Ignoriruemye bajty i bajty vne klyu-
151
APK.00210-01 33 01-5
chej ne uchastvuyut v sravnenii.
PRIMERY:
Vydat' v alfavitnom poryadke vse razlichnye slova v
fajle "spisok". Slova s propisnymi bukvami otlichayutsya
ot slov so strochnymi bukvami.
sort -u +0f +0 spisok
Vydat' soderzhimoe fajla /etc/passwd, otsortirovannoe
po nomeram identifikatorov pol'zovatelej (tret'e iz
razdelennyh dvoetochiyami polej):
sort -t: +2n /etc/passwd
Vydat' pervoe vhozhdenie kazhdogo mesyaca v uzhe otsorti-
rovannom fajle (dates). Klyuchi "-um" s edinstvennym
vhodnym fajlom obespechivayut vybor predstavitelya iz
kazhdoj gruppy odinakovyh strok.
sort -um +0 -1 dates
DOPOLNITELXNYE SSYLKI :
uni, comm, rev, join
DIAGNOSTIKA:
Vydaetsya soobshchenie i nenulevoj kod vozvrata pri raz-
lichnyh oshibochnyh situaciyah i pri neuporyadochennosti,
obnaruzhennoj pri nalichii klyucha "-c".
ZAMECHANIYA:
Slishkom dlinnye stroki usekayutsya bez preduprezhdeniya.
152
APK.00210-01 33 01-5
IMYA:
split - razbit' fajl na chasti
FORMAT:
split [-n] [fajl [imya]]
OPISANIE:
Komanda split schityvaet "fajl" i razbivaet ego na
fajly, soderzhashie po n strok ishodnogo fajla kazhdyj
(po umolchaniyu - 1000). Esli ishodnyj fajl soderzhit
chislo strok ne kratnoe n, poslednij rezul'tiruyushchij
fajl mozhet byt' koroche. Imya pervogo vyhodnogo fajla
predstavlyaet soboj "imya" s dobavkoj "aa", i tak dalee
v leksikograficheskom poryadke. Esli vyhodnoe imya ne za-
dano, po umolchaniyu prinimaetsya h.
Esli vhodnoj fajl ne ukazan ili vmesto nego ukazyvaet-
sya "-", ispol'zuetsya standartnyj fajl vvoda.
153
APK.00210-01 33 01-5
IMYA:
st - vydat' na displej informaciyu o sostoyanii zadaniya
OS ES.
FORMAT:
st [idvm] imya_zadaniya
OPISANIE:
Komanda st posylaet zapros OS ES cherez PDP dlya poluche-
niya informacii o sostoyanii zadaniya, imya kotorogo uka-
zano v parametre "imya_zadaniya". Virtual'naya mashina
identificiruetsya parametrom "idvm", znachenie po umol-
chaniyu complex1.
Komanda ne snizhaet interaktivnosti raboty za schet
togo, chto formiruet zapros k PDP v fonovom rezhime, ko-
toryj v svoyu ochered' ozhidaet obratnoj svyazi v techenii
minuty. Esli za eto vremya otveta iz PDP ne postupaet,
vydaetsya diagnosticheskoe soobshchenie i komandu st nuzhno
povtorit' vnov'.
FAJLY:
/dev/smsg?
154
APK.00210-01 33 01-5
IMYA:
strip - udalit' tablicu simvolov.
FORMAT:
strip imya ...
OPISANIE:
Komanda strip udalyaet tablicu simvolov i bity pereme-
shcheniya, kotorye obychno prisoedinyayutsya k vyvodu as-
semblera i redaktora svyazej. |to polezno dlya ekonomii
mesta posle togo, kak programma byla otlazhena.
Dejstvie komandy strip takoe zhe, kak ispol'zovanie
klyucha "-s" v komande ld.
DOPOLNITELXNYE SSYLKI :
ld
155
APK.00210-01 33 01-5
IMYA:
stty - ustanovit' rezhim raboty terminala.
FORMAT:
stty [rezhim ...]
OPISANIE:
Komanda stty ustanavlivaet opredelennye rezhimy vvo-
da/vyvoda dlya terminala pol'zovatelya. Pri otsutstvii
parametrov ona soobshchaet tekushchee sostoyanie rezhima.
Komandoj ustanavlivayutsya sleduyushchie rezhimy:
even razreshit' kontrol' po chetnosti;
-even zablokirovat' kontrol' po chetnosti;
odd razreshit' kontrol' po nechetnosti;
-odd zablokirovat' kontrol' po nechetnosti;
Dlya polnogo otklyucheniya nuzhno ukazat' "-even -odd".
raw rezhim neposredstvennogo vvoda (net zaboya (kill),
udaleniya (erase), preryvaniya (quit), konca pere-
dachi (EOT); bit kontrolya po paritetu vozvrashchaet-
sya nazad);
-raw otmena rezhima neposredstvennogo vvoda;
cbreak
delat' kazhdyj simvol dostupnym read(2) po mere
postupleniya; net zaboya (kill) i udaleniya
(erase);
156
APK.00210-01 33 01-5
-cbreak
delat' simvoly dostupnymi dlya read tol'ko posle
polucheniya simvola novoj stroki;
-crmod
stroki na ekrane zakanchivayutsya tol'ko simvolami
novoj stroki;
crmod dopuskaetsya upotreblenie simvola vozvrata karet-
ki (CR) vmesto simvola novoj stroki (NL); vmesto
vozvrata karetki ili novoj stroki vyvodyatsya sim-
voly vozvrat karetki - perevod stroki (CR-NL);
echo otobrazhat' v eho-rezhime vvodimyj simvol;
-echo ne otobrazhat' simvoly v eho-rezhime;
lcase preobrazovyvat' simvoly verhnego registra v sim-
voly nizhnego registra;
-lcase
ne vypolnyat' preobrazovaniya registra simvolov;
-tabs zamenyat' pri pechati simvoly tabulyacii probelami;
tabs sohranyat' simvoly tabulyacii;
cyrill
terminal imeet russkie simvoly;
-cyrill
terminal ne imeet russkih simvolov;
157
APK.00210-01 33 01-5
icyrill
rezhim raboty klaviatury (russkij/latinskij) us-
tanavlivaetsya ot samoj klaviatury (|lektronika
15 I| 0013, klaviatura v "testovom" rezhime);
-icyrill
rezhim raboty klaviatury (russkij/latinskij) us-
tanavlivaetsya ot linii (|lektronika 15 I| 0013,
klaviatura v "normal'nom" rezhime); Klaviaturu
rekomenduetsya pereklyuchat' v "testovyj" rezhim.
dec ustanovit' simvoly zaboya, udaleniya i preryvaniya
v stile OS RSX-11, RT-11: ("zaboj", <control>u,
<control>c).
ek to zhe, chto "dec".
unix ustanovit' simvoly zaboya, udaleniya i preryvaniya
v stile OS UNIX: ("#", "@", <zaboj>). Simvolom
"quit" ustanavlivaetsya <control> .
erase c
rassmatrivat' simvol c kak simvol unichtozheniya.
Simvol unichtozheniya mozhet takzhe imet' vid ^x, chto
analogichno <ctrl>x;
kill c
rassmatrivat' simvol c kak simvol zaboya stroki.
Zdes' takzhe dejstvitel'na forma ^h;
intr c
158
APK.00210-01 33 01-5
rassmatrivat' simvol c kak simvol preryvaniya
"interrupt". Zdes' takzhe dejstvitel'na forma
^h;
quit c
rassmatrivat' simvol c kak simvol preryvaniya s
sozdaniem obraza pamyati "core". Zdes' takzhe dej-
stvitel'na forma ^h;
nl cr ht vt n
ustanovit' zaderzhku sootvetstvuyushchego dvizheniya
kursora na n tikov;
width n
ustanovit' shirinu stranicy (dlinu stroki) v n
simvolov dlya avtomaticheskogo perenosa stroki;
lengh n
ustanovit' dlinu stranicy v n strok, tak chtoby
vyvod byl postranichnym; esli zadano length 0,
delenie na stranicy prekrashchaetsya;
score stiranie simvolov s ekrana pri zaboe (kill) i
udalenii (erase);
-score
otmena rezhima score;
indctl
vydavat' control-simvoly v eho-rezhime, kak
^<char + 0141>;
159
APK.00210-01 33 01-5
-indctl
otmena rezhima indctl;
hup prekrashchaet peredachu dannyh po telefonnomu kanalu
svyazi pri zavershenii seansa;
-hup ne prekrashchaet peredachu dannyh po telefonnomu ka-
nalu svyazi pri zavershenii seansa;
0 nemedlenno prekrashchaet telefonnuyu svyaz';
extb speed
ustanavlivaet skorost' linii svyazi s terminalom
v bodah ravnuyu "speed". Argument "speed" mozhet
prinimat' znacheniya: 75, 110, 134, 150, 200, 300,
600, 1200, 1800, 2400, 4800, 9600 (dannye sko-
rosti podderzhivayutsya interfejsami dh i dz);
cro cr1 cr2 cr3
vybiraet vremya zaderzhki dlya vozvrata karetki;
nl0 ln1 nl2 nl3
vybiraet vremya zaderzhki dlya podachi na stroku.
DOPOLNITELXNYE SSYLKI :
tty, ioctl, tabs.
160
APK.00210-01 33 01-5
IMYA:
su - vremenno zamenit' identifikator pol'zovatelya.
FORMAT:
su [identifikator_pol'zovatelya]
OPISANIE:
Komanda su porozhdaet novyj process interpretatora ko-
mandnogo yazyka s novym znacheniem identifikatora pol'-
zovatelya. Esli u pol'zovatelya s zakazannym identifika-
torom sushchestvuet parol', on zaprashivaetsya i komanda
vypolnyaetsya tol'ko v sluchae udachnogo otveta. Novyj
identifikator pol'zovatelya ispol'zuetsya poka ne okon-
chen seans raboty s porozhdennym interpretatorom komand.
Esli identifikator pol'zovatelya v komande su ne uka-
zan, to ispol'zuetsya identifikator super-pol'zovatelya
(root). Dlya togo, chtoby kak-to vydelit' rabotu v pri-
velegirovannom rezhime, sh menyaet podskazku na "#".
DOPOLNITELXNYE SSYLKI :
sh
161
APK.00210-01 33 01-5
IMYA:
sum - kontrol'naya summa i chislo blokov fajla
FORMAT:
sum file ...
OPISANIE:
Sum vychislyaet i vydaet 16-bitovuyu kontrol'nuyu summu i
razmer v blokah dlya zadannyh fajlov. |ta komanda obych-
no ispol'zuetsya dlya obnaruzheniya nevernyh mest ili op-
redeleniya dostovernosti fajla, peredavaemogo po linii
peredachi.
DOPOLNITELXNYE SSYLKI :
wc
DIAGNOSTIKA:
read error
Oshibka chteniya. Pri rabote so special'nymi fajla-
mi mozhet vydavat'sya pri dostizhenij konca fajla
(naprimer, pri popytke chteniya bloka, nesushchestvu-
yushchego dlya dannogo tipa diska). V etom sluchae,
poyavleniya podobnoj diagnostiki ne yavlyaetsya sig-
nalom o neuspeshnom zavershenii komandy.
162
APK.00210-01 33 01-5
IMYA:
svc - vydat' chislo sistemnyh vyzovov.
FORMAT:
svs programma [argumenty]
OPISANIE:
svc vypolnyaet programmu "programma" s argumentami "ar-
gumenty" i vydaet vremya nachala raboty kazhdogo sistem-
nogo vyzova.
Rezul'tat zapisyvaetsya v standartnyj fajl oshibok, dlya
togo, chtoby ego mozhno bylo prosmotret' posle okonchaniya
ppogpammy.
Programma time soobshchaet pol'zovatel'skoe vremya i vremya
sistemy, zatrachennoe na vypolnenie programmy. Komanda
svc daet bolee polnoe predstavlenie o tom, na chto eto
vpemya bylo potpacheno. Komanda mon ispol'zuetsya dlya po-
lucheniya bolee polnoj informacii o vremeni pol'zovate-
lya.
163
APK.00210-01 33 01-5
IMYA:
sysname - vydat' imya yadra sistemy.
FORMAT:
sysname
OPISANIE:
Komanda sysname pechataet imya aktivnogo yadra sistemy
DEMOS.
DOPOLNITELXNYE SSYLKI:
ipl
164
APK.00210-01 33 01-5
IMYA:
tail - vydacha chasti fajla
FORMAT:
tail [+-chislo[lbc]] [fajl]
OPISANIE:
Komanda tail vydaet ukazannyj fajl v standartnyj fajl
vyvoda, nachinaya s zadannogo mesta. Esli ne ukazano imya
fajla, ispol'zuetsya standartnyj fajl vvoda.
Kopirovanie nachinaetsya s tochki, nahodyashchejsya na rasto-
yanii "+chislo" ot nachala ili "-chislo" ot konca vvoda.
"CHislo" vyrazhaetsya v edinicah strok, blokov ili simvo-
lov v sootvetstvii s zadannymi parametrami "l", "b"
ili "c". Esli edinicy ne ukazany, otschet vedetsya v
strokah.
DOPOLNITELXNYE SSYLKI :
dd
ZAMECHANIYA:
Ostavshiesya chasti fajlov, otschityvayushchiesya ot konca
fajla, hranyatsya v bufere i poetomu ogranicheny v dline.
Razlichnye oshibki mogut proishodit' pri rabote so spe-
cial'nymi fajlami.
165
APK.00210-01 33 01-5
IMYA:
tape - zakreplenie i osvobozhdenie magnitnyh lent
FORMAT:
tape [-muwq] [-nl] [-blp]
[-sl nomer_fajla] [-d plotnost'] [-c ko-
mandnaya_stroka] serijnyj_nomer
OPISANIE:
Komanda ispol'zuetsya dlya peredachi harakteristik lenty,
ispol'zuemoj v obmene dannymi. Operacii vvoda-vyvoda
modeliruyutsya fajlami nakopleniya, kuda predvaritel'no
postutayut dannye, schitannye s lenty drajverom ustroj-
stva ili v ozhidanii osvobozhdeniya drajvera dlya zapisi
na lentu.
opcii komandy:
-m smontirovat' lentu. Dejstvie rezhima po umolcha-
niyu, esli otsutstvuet opciya -u;
-u demontirovat' lentu. Rezhim otmenyaet zapros mon-
tirovaniya, esli lenta eshche ne smontirovana. Opciya
ne sovmestima so vsemi ostal'nymi;
-w smontirovat' lentu dlya zapisi. Otsutstvie opcii
montiruet lentu tol'ko v rezhime chteniya;
-q opciya vyklyuchaet rezhim uvedomleniya raspredeleniem
ustrojstv;
-nl dolzhna ispol'zovat'sya lenta bez metok. Lenty s
166
APK.00210-01 33 01-5
metkami budut razgruzhat'sya;
-blp opciya zadaet rezhim obhoda obrabotki metok na
lente. Metki lenty rassmatrivayutsya kak sobstven-
no fajly;
-sl lenta dolzhna imet' standartnye metki v formate
OS ES, "nomer_fajla" ukazyvaet nomer fajla na
lente;
-d ustanavlivaet plotnost' zapisi na lentu. Po
umolchaniyu 63 zn/mm;
-c vypolnit' komandu DEMOS, zapisannuyu vmesto para-
metra "komandnaya-stroka" Komanda vypolnyaetsya v
fonovom rezhime. Prisutstvie simvol'noj posledo-
vatel'nosti %s v komandnoj stroke vyzyvaet ee
zamenu serijnym nomerom lenty "serijnyj-nomer"
Naprimer tape -m-c"cat %s>blot" GLOP84 komanda
kopiruet lentu GLOP84 v fajl blot.
ZAMECHANIYA:
Lentochnyj cledyashchij ppocecc i drajver ustrojstva pod-
derzhivayut obrabotku metok lent, tem samym predotvrashcha-
etsya porcha lent. Rezhimy obrabotki metok -nl, -sl, -blp
opisyvayut harakteristiku lenty na vhode.
Rezhim -nl otnositsya k lentam, ne soderzhashchim metki
fajlov i serijnyj nomer toma.
Rezhim -sl harakterizuet lentu s serijnym nomerom toma
167
APK.00210-01 33 01-5
v pervoj zapisi i metkami dlya lentochnyh fajlov.
Rezhim -blp ustanavlivaet obrabotku s vyklyuchennoj obra-
botkoj metok lenty. Metki lenty rassmatrivayutsya kak
sobstvenno fajly.
FAJLY:
/usr/spool/out/t*
spool fajla lenty
/usr/spool/out/.spoolpid
identifikator processa spool
/dev/tape/??????
zakreplenie ustrojstva dlya pol'zovatelya
/dev/mt?
zakreplenie ustrojstva dlya sistemy
/dev/tape/lock18
DOPOLNITELXNYE SSYLKI:
opr, vmpunch, label, spooler, tm
168
APK.00210-01 33 01-5
IMYA:
tar - vedenie arhiva na magnitnyh lentah
FORMAT:
tar klyuch [imya ...]
OPISANIE:
S pomoshch'yu komandy tar sohranyayutsya i vosstanavlivayutsya
fajly v arhive na magnitnoj lente. Rezhim raboty koman-
dy opredelyaetsya s pomoshch'yu argumenta "klyuch". "Klyuch"
predstavlyaet soboj odin iz priznakov operacii (r,x,t,u
ili c), i vozmozhno, odin ili bolee klyuchej-
modifikatorov. Ostal'nymi argumentami komandy yavlyayutsya
imena fajlov ili katalogov, kotorye dolzhny byt' sohra-
neny ili vosstanovleny.
Tar vypolnyaet sleduyushchie operacii:
r Perechislennye fajly dozapisyvayutsya v arhiv na
lente. Zapis' vedetsya v konec arhiva;
h Perechislennye fajly schityvayutsya s lenty. Esli
zadano imya kataloga, soderzhimoe kotorogo bylo
zapisano na lentu, schityvayutsya fajly iz etogo
kataloga (nachinayushchiesya s ukazannogo imeni). Vla-
delec i status fajlov vosstanavlivayutsya (esli
eto vozmozhno). Esli ne zadaetsya ni odnogo argu-
menta "imya", vosstanavlivayutsya vse fajly s
lenty. Esli na lente imeetsya neskol'ko imen,
specificiruyushchih tot zhe samyj fajl, to schityvayut-
169
APK.00210-01 33 01-5
sya vse varianty fajla i ostaetsya poslednij;.
t Vydayutsya imena ukazannyh fajlov kazhdyj raz,
kogda oni poyavlyayutsya na lente. Esli argumenty
"imya" ne zadany, vydayutsya imena vseh fajlov na
lente;
u Perechislennye fajly dozapisyvayutsya v arhiv na
lente, esli ih tam ne bylo ili oni byli modifi-
cirovany s momenta poslednej zapisi na lentu;
c Sozdaet novyj arhiv na lente. Zapis' vedetsya s
nachala, a ne v konec arhiva.
Sleduyushchie simvoly modificiruyut zadannuyu operaciyu:
1,2 |tot modifikator zadaet lentoprotyazhnyj meha-
nizm, na kotorom montiruetsya lenta (po umolcha-
niyu 12, esli ne zadana peremennaya "TAPE"; is-
pol'zuetsya imya iz peremennoj "TAPE", esli ono
zadano. Peremennaya "TAPE" ispol'zuetsya dlya pe-
redachi imeni lenty komandami "tar", "mt",
"ardos" i zadaetsya v interpretatore "sh" tak
(naprimer , lenta /dev/mt580):
"TAPE=/dev/mt580; export TAPE"; v "csh" tak:
"setenv TAPE /dev/mt580". Imya mozhno takzhe za-
davat' klyuchom "f".);
v Pri ispol'zovanii klyucha v komanda tar pechataet
imya kazhdogo obrabatyvaemogo fajla i soot-
vetstvuyushchuyu bukvu-funkciyu. V sluchae operacii
170
APK.00210-01 33 01-5
t, vydayutsya ne tol'ko imena fajlov na lente,
no i drugaya informaciya;.
w Zastavlyaet komandu tar pechatat' prinimaemoe k
ispolneniyu dejstvie, a zatem zhdat' podtverzhde-
niya pol'zovatelya. Vozmozhny sleduyushchie varianty
otveta: "y" - vypolnit' dejstvie, "n" - pro-
pustit' dejstvie, "=imya" - vypolnit' dejstvie
bez zaprosa dlya vseh fajlov, imena kotoryh
sovpadayut ili nachinayutsya s "imya", "#imya" -
propuskayutsya fajly, imena kotoryh sovpadayut
ili nachinayutsya s "imya";.
f Zastavlyaet komandu tar ispol'zovat' sleduyushchij
argument v kachestve imeni arhiva vmesto
/dev/mt?. Esli imenem fajla sluzhit "-", tar
pishet na standartnyj vyvod ili chitaet iz stan-
dartnogo vvoda. Takim obrazom, mozhno ispol'zo-
vat' tar kak nachalo ili okonchanie cepi
fil'tra. Tar mozhno takzhe ispol'zovat' dlya pe-
resylki ierarhicheskih struktur s pomoshch'yu ko-
mandy
cd from; tar cf - * | (cd to; tar xf -);
b Zastavlyaet komandu tar ispol'zovat' sleduyushchij
argument v kachestve koefficienta blokirovaniya
zapisej na lente. Po umolchaniyu on raven 1,
maksimal'noe znachenie ravno 127. |tot klyuch
171
APK.00210-01 33 01-5
sleduet ispol'zovat' tol'ko dlya arhivov na
magnitnoj lente tipa /dev/mt?;
i prodolzhat' rabotu pri oshibkah chteniya lenty ili
kontrol'noj summy zagolovka, chto pozvolyaet, v
chastnosti, nachinat' chtenie s serediny arhiva
na lente. Tar pri oshibke ishchet sleduyushchij zago-
lovok fajla i prodolzhaet rabotu;
l Provociruet vydachu soobshchenij pri nevozmozhnosti
razreshit' vse svyazi vosstanavlivaemyh fajlov.
Esli etot klyuch ne zadan, soobshcheniya ob oshibkah
ne pechatayutsya.
Arhiv na lente sostoit iz logicheskih blokov po 512
bajt (vozmozhno, sblokirovannyh v bolee dlinnye fizi-
cheskie zapisi). Fajly zanimayut celoe chislo zapisej,
kazhdomu fajlu predshestvuet logicheskij blok-zagolovok.
Ves' arhiv zapisyvaetsya odnim fizicheskim fajlom na
lente. Dozapis' v sblokirovannyj arhiv vozmozhna pri
ispol'zovanii drajvera "mt" dlya raboty s lentami.
FAJLY:
/dev/mt*
/tmp/tar*
DIAGNOSTIKA:
Soobshcheniya o nepravil'nyh klyuchevyh simvolah i ob oshib-
kah chteniya/zapisi.
Soobshcheniya o nedostatke pamyati dlya hraneniya tablic svya-
172
APK.00210-01 33 01-5
zi.
ZAMECHANIYA:
Otsutstvuet vozmozhnost' zaprosa n-ogo poyavleniya fajla.
Operaciya u mozhet vypolnyat'sya medlenno.
Pri dozapisi, esli ispol'zuetsya "buferizovannyj"
dostup k lente, a imya ustrojstva peredaetsya cherez
peremennuyu "TAPE" ili s pomoshch'yu flaga "f", neobhodimo
yavno ukazyvat' koefficient blokirovki 1.
V nastoyashchee vremya ogranichenie na dlinu imeni fajla
sostavlyaet 100 simvolov.
173
APK.00210-01 33 01-5
IMYA:
tbl - formatirovanie tablic.
FORMAT:
tbl [fajly] ...
OPISANIE:
Komanda tbl yavlyaetsya preprocessorom dlya sistemy podgo-
tovki dokumentacii pif i sluzhit dlya formatirovaniya
tablic. Vvodimye stroki kopiruyutsya v standartnyj
vyvod, isklyuchaya stroki, nahodyashchiesya mezhdu komandnymi
strokami .TS i .TE (t.e. krome opisatelej tablic), v
sootvetstvii s opisatelyami formiruyutsya tablicy.
Esli ne zadan ni odin argument, komanda tbl schityvaet
standartnyj fajl vvoda, poetomu ona mozhet ispol'zo-
vat'sya kak fil'tr. V sluchae, kogda tbl ispol'zuetsya
sovmestno s eqn ili neqn, ona dolzhna byt' pervoj dlya
togo, chtoby minimizirovat' ob'em dannyh, prohodyashchih
cherez programmnyj kanal.
DOPOLNITELXNYE SSYLKI:
pif, eqn
ZAMECHANIYA:
Poskol'ku v redaktore tekstov re s cel'yu "ekonomii"
obpashchenie c kodami tabylyacii doctatochno ppoizvol'no,
ppi rabote s tbl neobhodimo zamenyat' razdelitel'.
PRIMERY:
Pust' v fajle txt zapisan sleduyushchij tekst:
174
APK.00210-01 33 01-5
.TS
center tab(&);
c s s
c s s
c c c
l n n.
|KSPRESS-INFORMACIYA VINITI
Periodichnost' 48 nomerov v god.
&Indeks&Cena
Aviastroenie&56767&12-00
Vychislitel'naya tehnika&56769&8-16
Gorodskoj transport&56770&7-68
Informatika&56772&5-28
Tehnicheskaya kibernetika&56796&8-16
|lektronika&56797&8-16
.TE
V rezul'tate vypolneniya komandy
tbl txt | pif
budet poluchen sleduyushchij tekst:
|KSPRESS-INFORMACIYA VINITI
175
APK.00210-01 33 01-5
Periodichnost' 48 nomerov v god.
Indeks Cena
Aviastroenie 56767 12-00
Vychislitel'naya tehnika 56769 8-16
Gorodskoj transport 56770 7-68
Informatika 56772 5-28
Tehnicheskaya kibernetika 56796 8-16
|lektronika 56797 8-16
176
APK.00210-01 33 01-5
IMYA:
tee - kopirovanie informacii.
FORMAT:
tee [-i] [-a] [fajl] ...
OPISANIE:
Komanda tee perepisyvaet informaciyu iz standartnogo
fajla vvoda v standartnyj fajl vyvoda i kopiruet ee v
ukazannye fajly. Vozmozhno ispol'zovanie klyuchej:
-i ustanavlivaet rezhim ignorirovaniya preryvanij;
-a privodit k tomu, chto informaciya dopisyvaetsya v
fajly.
177
APK.00210-01 33 01-5
IMYA:
test - proverka usloviya.
FORMAT:
test vyr
OPISANIE:
Komanda test ocenivaet vyrazhenie "vyr" i, esli ono is-
tinno, vozvrashchaet nulevoj kod otveta; inache vozvrashcha-
etsya nenulevoj kod otveta. Esli argumenty ne zadany,
vozvrashchaetsya nenulevoj kod otveta.
Dlya postroeniya "vyr" ispol'zuyutsya sleduyushchie primitivy:
-r fajl
istinno, esli fajl sushchestvuet i dostupen dlya
chteniya;
-w fajl
istinno, esli fajl sushchestvuet i dostupen dlya za-
pisi;
-f fajl
istinno, esli fajl sushchestvuet i ne yavlyaetsya
spravochnikom;
-d fajl
istinno, esli fajl sushchestvuet i yavlyaetsya spra-
vochnikom;
-s fajl
istinno, esli fajl sushchestvuet i imeet razmer
178
APK.00210-01 33 01-5
bol'shij, chem nul';
-t [fildes]
istinno, esli otkrytyj fajl, imeyushchij nomer
deskriptora fajla ravnyj fildes (po umolchaniyu
1), svyazan s terminalom;
-z s1 istinno, esli stroka s1 imeet nulevuyu dlinu;
-n s1 istinno, esli stroka s1 imeet nenulevuyu dlinu;
s1 = s2
istinno, esti stroki s1 i s2 ravny;
s1 != s2
istinno, esli stroki s1 i s2 ne ravny;
s1 istinno, esli s1 ne yavlyaetsya pustoj strokoj;
n1 -eq n2
istinno, esli celye chisla n1 i n2 algebraicheski
ravny. Vmesto -eq mogut ispol'zovat'sya lyubye
operacii sravneniya: -ne, -qt, -ge -lt ili -le.
|ti elementarnye operacii mogut kombinirovat'sya s po-
moshch'yu sleduyushchih operatorov:
! unarnyj operator otricaniya;
-a binarnyj operator i;
-o binarnyj operator ili;
( vyr )
179
APK.00210-01 33 01-5
kruglye skobki dlya gruppirovki;
Operaciya -a imeet bolee vysokij uroven' starshinstva,
chem -o. Vse operatory i flagi yavlyayutsya otdel'nymi ar-
gumentami komandy test. Poskol'ku kruglye skobki yavlya-
yutsya special'nymi simvolami komandnogo yazyka oni
dolzhny byt' vzyaty v kavychki.
DOPOLNITELXNYE SSYLKI :
sh, find
180
APK.00210-01 33 01-5
IMYA:
time - poluchenie vremeni raboty komandy.
FORMAT:
time komanda
OPISANIE:
Zadannaya komanda vypolnyaetsya, posle ee zaversheniya time
pechataet astronomicheskoe vremya, v techenie kotorogo vy-
polnyalas' komanda, vremya, zatrachennoe sistemoj, i vre-
mya, zatrachennoe pri vypolnenii komandy. Vremya vydaetsya
v sekundah v standartnyj fajl vyvoda diagosticheskih
soobshchenij.
ZAMECHANIYA:
Ispol'zovannoe vremya vydaetsya s tochnost'yu do sekundy,
hotya vremya central'nogo processora izmeryaetsya s toch-
nost'yu do 1/50 sekundy. Takim obrazom, summa vremen CP
mozhet byt' na sekundu bol'she, chem ispol'zovannoe vre-
mya.
181
APK.00210-01 33 01-5
IMYA:
touch - izmenenie daty modifikacii fajla.
FORMAT:
touch [-c] fajl ...
OPISANIE:
Komanda touch pytaetsya izmenit' datu modifikacii kazh-
dogo fajla, imena kotoryh zadayutsya argumentami "fajl".
|to delaetsya putem chteniya simvola iz fajla i zapisi
ego obratno.
Esli fajl ne sushchestvuet, budet sdelana popytka sozdat'
ego, krome teh sluchaev, kogda zadan klyuch -c.
182
APK.00210-01 33 01-5
IMYA:
tr - transliteraciya simvolov.
FORMAT:
tr [-cds] [str1 [str2]]
OPISANIE:
Komanda tr perepisyvaet standartnyj fajl vvoda v stan-
dartnyj fajl vyvoda s zameshcheniem ili udaleniem vybran-
nyh simvolov. Vhodnye simvoly, sootvetstvuyushchie simvo-
lam, zadannym v "str1", otobrazhayutsya v sootvetstvuyushchie
simvoly iz "str2". Esli stroka str2 koroche, ona zapol-
nyaetsya do dliny stroki str1 povtoreniem svoego posled-
nego simvola. Mogut byt' ispol'zovany lyubye kombinacii
klyuchej -cds:
-c dopolnyaet nabor simvolov v "str1" do nabora sim-
volov, v kotorom vos'merichnye kody KOI-8 izmenya-
yutsya ot 01 do 0377;
-d udalyaet vse vhodnye simvoly, sootvetsvuyushchie sim-
volam v stroke "str1";
-s szhimaet vse stroki povtoryayushchihsya vyvodnyh simvo-
lov, kotorye est' "str2", do odinochnyh simvolov.
Zapis' vida A-Z v lyuboj iz strok oznachaet diapazon
simvolov ot A do Z v vozrastayushchem poryadke KOI-8.
Simvol '/, za kotorym sleduyut 1, 2 ili 3 vos'merichnye
cifry, oznachaet simvol, kod KOI-8 kotorogo sostavlyayut
eti cifry. Esli za simvolom '/ sleduet kakoj-libo
183
APK.00210-01 33 01-5
drugoj simvol, eto ravnosil'no etomu simvolu.
V sleduyushchem primere sozdaetsya spisok vseh slov v file1
odno na stroku v file2, gde slovom schitaetsya maksi-
mal'naya stroka bukv. Vtoraya stroka zaklyuchaetsya v ka-
vychki dlya togo, chtoby "zashchitit'" simvol '/ ot obra-
botki komandnym yazykom. CHislo "012" predstavlyaet soboj
kod KOI-8 dlya simvola perehoda na novuyu stroku.
tr -cs A-Za-z ' 12' <file1 >file2
DOPOLNITELXNYE SSYLKI :
ed
ZAMECHANIYA:
Esli vy ne zhelaete obrabatyvat' simvol KOI-8 nul v
"str1" ili "str2", vsegda udalyajte nul iz vvoda.
184
APK.00210-01 33 01-5
IMYA:
true, false - poluchenie znacheniya "istinno" ("lozhno").
FORMAT:
true
false
OPISANIE:
Komanda true nichego ne delaet, a tol'ko vydaet kod
vozvrata ravnyj nulyu. Komanda false vydaet nenulevoj
kod vozvrata. |ti komandy obychno ispol'zuyutsya v ko-
mandnyh fajlah sh, naprimer:
while true
do
komanda
done
DOPOLNITELXNYE SSYLKI :
sh
185
APK.00210-01 33 01-5
IMYA:
tsort - topologicheskaya sortirovka.
FORMAT:
tsort [fajl]
OPISANIE:
Komanda tsort vydaet v standartnyj fajl vyvoda pol-
nost'yu uporyadochennyj spisok elementov, soglasuyushchijsya s
chastichnym uporyadocheniem elementov, nahodyashchihsya vo
vvodnom fajle "fajl". Esli argument "fajl" ne zadan,
ispol'zuetsya standartnyj fajl vvoda.
Vvodnaya informaciya soderzhit pary elementov (nepustye
stroki), razdelyaemye probelami. Pary raznyh elementov
ukazyvayut poryadok. Pary odinakovyh elementov ukazyvayut
prisutstvie, no ne poryadok.
DOPOLNITELXNYE SSYLKI :
lorder
DIAGNOSTIKA:
odd data:
nechetnoe chislo polej vo vvodnom fajle.
186
APK.00210-01 33 01-5
IMYA:
tty - poluchenie imeni terminala.
FORMAT:
tty
OPISANIE:
Komanda tty pechataet polnoe imya terminala pol'zovate-
lya.
DIAGNOSTIKA:
Esli standartnyj fajl vvoda ne yavlyaetsya terminalom, to
pechataetsya soobshchenie "not a tty".
187
APK.00210-01 33 01-5
IMYA:
uncompact - raspakovat' skompressirovannyj fajl.
FORMAT:
uncompact [imya...]
OPISANIE:
Komanda uncompact raspakovyvaet fajl, skompressirovan-
nyj ranee s pomoshch'yu komandy compact. Imya ishodnogo
fajla dolzhno imet' okonchanie ".C". V rezul'tate raboty
obrazuetsya raspakovannyj fajl s tem zhe imenem, no bez
okonchaniya ".C". Sootvetstvuyushchij kompressirovannyj fajl
unichtozhaetsya. Esli ni odnogo imeni fajla ne zadano, to
raspakovyvaetsya informaciya postupayushchaya iz standartnogo
fajla vvoda, a rezul'tat zapisyvaetsya v standartnyj
fajl vyvoda.
DIAGNOSTIKA:
Soobshcheniya o neotkryvayushchihsya fajlah i t.p.
DOPOLNITELXNYE SSYLKI :
compact, ccat
188
APK.00210-01 33 01-5
IMYA:
uniq - soobshchit' o povtoryayushchihsya strokah v fajle.
FORMAT:
uniq [-udc [+n] [-n]] [filein [fileout]]
OPISANIE:
Komanda uniq sravnivaet sosednie stroki fajla
"filein". Vtoraya i posleduyushchie povtoryayushchiesya stroki
udalyayutsya; ostavshayasya chast' zapisyvaetsya v vyvodnoj
fajl. Esli ispol'zuetsya klyuch "-u", vyvodyatsya tol'ko
nepovtoryayushchiesya stroki. Klyuch "-d" ukazyvaet, chto budet
vydavat'sya tol'ko odna iz povtoryayushchihsya strok. CHasto
klyuchi "-u" i "-d" ispol'zuyutsya sovmestno.
Klyuch "-c" otmenyaet dejstvie klyuchej "-u" i "-d" i zada-
et rezhim, pri kotorom povtoryayushchiesya stroki ne vydayutsya
i pered kazhdoj strokoj pechataetsya skol'ko raz dannaya
stroka vstretilas' v ishodnom fajle.
Argument "n" ukazyvaet, kakuyu nachal'nuyu chast' kazhdoj
stroki nuzhno propustit' pri sravnenii:
-n Ignoriruyutsya pervye "n" polej i lyuboe chislo pro-
belov pered kazhdym polem. Pole opredelyaetsya kak
stroka simvolov (ne probelov i ne simvolov tabu-
lyacii), otdelyaemaya ot svoih sosedej simvolami
tabulyacii ili probelami.
+n Ignoriruyutsya pervye "n" simvolov. Polya propuska-
yutsya pered simvolami.
189
APK.00210-01 33 01-5
DOPOLNITELXNYE SSYLKI :
sort, comm
190
APK.00210-01 33 01-5
IMYA:
units - preobrazovanie edinic izmerenij.
FORMAT:
units
OPISANIE:
Komanda units preobrazuet velichiny iz odnoj sistemy
edinic v druguyu, Rabota vedetsya interaktivno sleduyushchim
obrazom:
you have: inch
you want: cm
* 2.54000e+00
/ 3.93701e-01
Velichina zadaetsya kak mul'tiplikativnaya kombinaciya
edinic, neobyazatel'no soprovozhdaemaya chislovym mnozhite-
lem. Stepeni ukazyvayutsya v vide suffiksa, sostoyashchego
iz polozhitel'nyh celyh chisel: delenie - obychnym zna-
kom:
you want: 15 pounds forse/in2 you want: atm
* 1.02059+00
/ 9.79730e-01
Komanda units vypolnyaet tol'ko mul'tiplikativnye izme-
neniya shkaly. Takim obrazom, ona mozhet perevesti gradu-
sy Kel'vina v Renkina, no ne mozhet perevesti gradusy
Cel'siya v gradusy Farengejta. Raspoznayutsya naibolee
znakomye edinicy, abreviatury i metricheskie pristavki,
191
APK.00210-01 33 01-5
a takzhe neskol'ko konstant:
pi otnoshenie dliny okruzhnosti k diametru;
c skorost' sveta;
e zaryad elektrona;
g uskorenie sily tyazhesti;
force to zhe, chto g;
mole chislo Avogadro;
water davlenie edinicy vodyanogo stolba;
au astronomicheskaya edinica;
Pound edinica massy.
Sostavnye nazvaniya pishutsya slitno. Tipichno anglijskie
edinicy, otlichayushchiesya ot odnoimennyh edinic ispol'zu-
emyh v SSHA, snabzhayutsya pristavkoj br (naprimer,
brgallon). Nazvaniya denezhnyh edinic sostavlyaetsya iz
nazvaniya strany i sobstvenno edinicy (naprimer,
britanpound).
Polnyj spisok edinic mozhno poluchit', raspechatav fajl
/usr/lib/units.
ZAMECHANIYA:
Dlya togo, chtoby preobrazovanie valyut rabotalo verno,
neobhodimo postoyanno korrektirovat' fajl
/usr/lib/units.
192
APK.00210-01 33 01-5
IMYA:
vmid - raspechatat' identifikator VM
FORMAT:
vmid
OPISANIE:
komanda raspechatyvaet identifikator virtual'noj mashiny
,v kotopoj pabotaet pol'zovatel' DEMOS.
DOPOLNITELXNYE SSYLKI:
vmid
193
APK.00210-01 33 01-5
IMYA:
vmmsg - poslat' soobshcheniya pol'zovatelyu VM
FORMAT:
vmmsg idvm [tekst ...]
OPISANIE:
komanda pozvolyaet pol'zovatelyu DEMOS poslat' soobshcheniya
dlya pol'zovatelya VM. Registracionnyj identifikator
pol'zovatelya avtomaticheski vklyuchaetsya v soobshchenie.
Esli komandnaya stroka ne codepzhit coobshchenie ,to dlya
dannogo soobshcheniya ispol'zuetsya standartnyj vvod. Mak-
simal'naya dlina soobshcheniya- 100 simvolov.
194
APK.00210-01 33 01-5
IMYA:
vmpunch - perforirovat' fajl DEMOS.
FORMAT:
vmpunch [-rhdsqo] [-v idvm] [-i imya] [-t teg]
[-c klass] [-f teg_fajl] [-u imya] [-x koman-
da[:argument]] [fajl]
OPISANIE:
Komanda vmpunch zapisyvaet dannyj fajl (ili ispol'zu-
etsya ctandaptnyj vvod, ecli nikakogo fajla ne dano)
dlya perforacii v VM. VM budet peredavat' otperforiro-
vannyj fajl dlya virtual'nogo schityvayushchego ustrojstva
virtual'noj mashiny ukazannogo identifikatora ili, ecli
on ne ykazan, on beretsya iz fajla /etc/passwd.
-r podavlyaet ppeobpazovanie dannyh iz KOI-8 v DKOI;
-h posylaet fajl s zagolovkom;
-d udalit' vvodnoj fajl posle ego perforacii;
-s perforirovat' v rezhime "stream". Dannye perfori-
ruyutsya v formate "TWO BYTE <LENGTH> <DATA>...";
-q prinimayushchaya sistema DEMOS ne izveshchaet vladel'ca
o pribytii fajla;
-o rezhim perepisyvaniya. Soobshchaet prinimayushchej siste-
me DEMOS o neobhodimosti perepisat' zapisannyj
fajl;
195
APK.00210-01 33 01-5
-v idvm
identifikatop BM, kotopaya poluchaet zadanie. Esli
parametr imeet formu COMPLEX.VMID, togda fajl
peredaetsya v PDP dlya napravleniya ego v sistemu,
ukazannuyu s pomoshch'yu COMPLEX. Esli -v ne ispol'-
zuesya, to komanda budet ispol'zovat' vvod iz
/etc/passwd;
-i ispol'zuetsya ukazannyj identifikator pol'zovate-
lya DEMOS dlya naznacheniya ppava obladaniya fajlom,
ecli dannye perforiruyutsya dlya sistemy DEMOS;
-f ispol'zujte "teg_fajl" v kachectve imeni, kotopoe
daetsya fajlu. Ecli ne icpol'zyetcya, to komanda
budet ispol'zovat' imya vvodnogo fajla, ecli eto
ne ctandaptnyj vvod, v etom sluchae ispol'zuetsya
"from.punch";
-c klass dlya perforacii. Obychno v;
-t ispol'zovanie ukazannoj informacii. Osobenno po-
lezno eto pri perforirovanii dlya PDP;
-u ispol'zovat' ukazannyj identifikator pol'zovate-
lya kak identifikator mashiny DEMOC, pabotayushchej
kak VM. V etom sluchae generiruetsya karta userid
dlya prinimayushchej mashiny;
-H vypolnit' komandu iz /usr/spool/bin s argumenta-
mi Perforiruemyj fajl stanovitsya standartnym
vvodom dlya komandy v prinimayushchej sisteme DEMOS.
196
APK.00210-01 33 01-5
Dannaya komanda ne dolzhna ispol'zovat'sya dlya perforacii
zadanij dlya sistemy OS ES. Dlya etogo neobhodimo is-
pol'zovat' komandu send.
Perforiruemye fajly mezhdu sistemami DEMOS ispol'zuyut
zagolovok dlya pepedachi informacii ob identifikatore
pol'zovatelya i mestonahozhdenii fajla. Dlya peremeshchenij
mezhdu sistemami DEMOS ispol'zuyutsya flagi -i i -x.
DOPOLNITELXNYE SSYLKI:
send, vmread, spooler
197
APK.00210-01 33 01-5
IMYA:
wc - podschet slov.
FORMAT:
wc [-lwcpt] [-bbod] [-srazm_str] [-u]
[-v] [fajl...]
OPISANIE:
Komanda wc podschityvaet chislo strok, slov, simvolov i
(esli zakazano) chislo listov i vremya peredachi po linii
svyazi ukazannyh fajlov. Esli otsutstvuyut argumenty
"fajl", ves' podschet delaetsya dlya informacii iz stan-
dartnogo fajla vvoda. Slovom schitaetsya maksimal'naya
stroka simvolov, ogranichennaya probelami, simvolami ta-
bulyacii ili simvolami novoj stroki.
Klyuch, esli on zadaetsya, mozhet soderzhat' simvoly "l",
"w", "c", "p", i "t" chto sootvetstvuet podschetu strok
(l), slov (w), simvolov (c), chisla listov (p) i vreme-
ni peredachi (t).
-bbod Ukazyvaet, chto skorost' peredachi ("bod") otlichna
ot prinyatoj po umolchaniyu (300 bod).
-srazm_str
Zadaet razmer lista (po umolchaniyu 66 strok).
-u Ukazyvaet, chto pri opredelenii vremeni pechat'
sleduet uchityvat' vremya peredachi po seti.
-v Zadaet rezhim pechati zagolovkov.
198
APK.00210-01 33 01-5
PRIMERY:
Podschet chisla slov, strok, listov v fajle wc.1 i vyda-
cha dannoj informacii s zagolovkom:
wc -lwcpt -v wc.1
v rezul'tate vypolneniya etoj komandy budet vydano sle-
duyushchee soobshchenie:
lines words chars pages time@300
42 86 1312 1 43.0 se wc.1
ZAMECHANIYA:
Pri podschete vremeni pechati ne uchityvayutsya takie fak-
tory kak stepen' zagruzki mashiny, i t.p.
199
APK.00210-01 33 01-5
IMYA:
whatis - vydat' kratkuyu spravku o komponente.
FORMAT:
whatis name ...
OPISANIE:
Komanda whatis vydaet kratkuyu spravku o naznachenii
kazhdoj iz perechislennyh komponent sistemy ("name").
Polnye dokumenty po zadannym komponentam mozhno polu-
chit' s pomoshch'yu komandy man.
FAJLY:
/usr/lib/whatis kratkij spravochnik
DOPOLNITELXNYE SSYLKI :
man, catman, apropos
200
APK.00210-01 33 01-5
IMYA:
whereis - poisk komponenty
FORMAT:
whereis [-sbm] [-u] [-sbm spravonik ... -f] name
OPISANIE:
Komanda whereis proizvodit poisk vseh vhozhdenij uka-
zannogo imeni ("name") v imena fajlov standartnyh
spravochnikov. Pri sravnenii zadannogo imeni s bazovym
imenem fajla, okonchaniya tipa ".c", ".bak" ".etc" i
t.p., ne rassmatrivayutsya. Vydayutsya polnye imena naj-
dennyh fajlov.
Pri vyzove komandy mogut zadavat'sya sleduyushchie klyuchi:
-s proizvodit' poisk v spravochnikah, soderzhashchih is-
hodnye teksty komand (po umolchaniyu, prosmatriva-
yutsya spravochniki s ishodnymi tekstami komand OS
DEMOS);
-b proizvodit' poisk v spravochnikah, soderzhashchih go-
tovye k vypolneniyu komandy (po umolchaniyu, pros-
matrivayutsya spravochniki s komandami OS DEMOS);
-m proizvodit' poisk v spravochnikah, soderzhashchih do-
kumentaciyu. (po umolchaniyu, prosmatrivayutsya spra-
vochniki s operativnoj dokumentaciej po OS
DEMOS);
-u vydavat' soobshcheniya tol'ko o teh fajlah, imena
201
APK.00210-01 33 01-5
kotoryh ne soderzhat vhozhdenij ni odnogo iz ele-
mentov spiska "name".
-f priznak konca spiska spravochnikov.
Klyuchi "-b", "-m", i "-s" mogut ispol'zovat'sya dlya za-
daniya oblasti prosmotra komandy whereis. V etom slu-
chae, posle sootvetstvuyushchego klyucha pomeshchaetsya spisok
spravochnikov, soderzhashchih fajly ukazannogo tipa.
PRIMERY:
Poisk vseh fajlov v spravochnike osnovnyh komand siste-
my, kotorye ne imeyut sootvetstvuyushchih opisanij v spra-
vochnike s operativnoj dokumentaciej:
whereis -u -m /bin
FAJLY:
/bin/*
/usr/bin/*
/usr/lib/*
/etc/*
Poskol'ku ispol'zuetsya sistemnyj vyzov chdir, imena
spravochnikov, v kotoryh osushchestvlyaetsya poisk, dolzhny
privoditsya polnost'yu.
202
APK.00210-01 33 01-5
IMYA:
who - kto rabotaet v sisteme.
FORMAT:
who [who-fajl] [am i]
OPISANIE:
Komanda who bez argumenta vydaet dlya kazhdogo aktivnogo
pol'zovatelya sistemy DEMOS registracionnoe imya, imya
terminala i vremya registracii. Esli zadan argument,
pechataetsya analogichnaya stroka o vyhode iz sistemy bez
imeni pol'zovatelya. Dlya povtornyh zagruzok pechataetsya
stroka s "x" na meste imeni ustrojstva i vremya okoncha-
niya raboty sistemy.
Esli zadany dva argumenta, naprimer, "who am I" (a
takzhe "who are you"), who pechataet imya pod kotorym vy
zaregistrirovalis' v sisteme.
FAJLY:
/etc/utmp
DOPOLNITELXNYE SSYLKI :
getuid, utmp
203
APK.00210-01 33 01-5
IMYA:
write - peredacha soobshcheniya drugomu pol'zovatelyu.
FORMAT:
write imya_pol'zovatelya [imya_tty]
OPISANIE:
Komanda write ispol'zuetsya dlya peredachi soobshchenij na
terminal drugogo pol'zovatelya. Kogda komanda vyzyvaet-
sya, ona posylaet soobshchenie:
Message from "username" "ttyname"..
Peredacha prodolzhaetsya do teh por poka ne schityvaetsya
konec fajla na terminale ili ne posylaetsya preryvanie.
Po koncu peredachi, write pechataet na drugom terminale
"EOF" i zavershaet rabotu.
Esli vy hotite poslat' soobshchenie pol'zovatelyu, kotoryj
bolee chem odin raz zaregistrirovalsya v sisteme, mozhno
ispol'zovat' argument "imya_tty" dlya togo, chtoby uka-
zat' sootvetstvuyushchee imya terminala.
S pomoshch'yu komandy mesg mozhno zakryt' svoj terminal na
priem soobshchenij ot drugih pol'zovatelej. Vnachale
zapis' razreshaetsya. Nekotorye komandy, v chastnosti re,
i pr, na vremya svoej raboty zakryvayut terminal na pri-
em soobshchenij, chtoby predotvratit' besporyadochnyj vyvod.
Esli stroka nachinaetsyaya simvolom "!", write vyzyvaet
interpretator komand dlya togo, chtoby vypolnit' ostatok
204
APK.00210-01 33 01-5
stroki kak komandu.
Pri ispol'zovanii write rekomenduetsya priderzhivat'sya
sleduyushchego protokola: pri pervom obrashchenii k drugomu
pol'zovatelyu, pered tem, kak nachinat' svoyu posylku,
dozhdites' ego otveta. Kazhdaya storona dolzhna zakanchi-
vat' kazhdoe soobshchenie vydelyayushchim signalom "o". Kod
"oo" ispol'zuetsya, kogda dialog blizok k zaversheniyu.
DOPOLNITELXNYE SSYLKI :
mesg, who, mail
205
APK.00210-01 33 01-5
IMYA:
xstr - vydelenie tekstovyh konstant iz programm na
yazyke Si.
FORMAT:
xstr [-c] [-x] [-] [fajl]
OPISANIE:
Komanda xstr prednaznachena dlya vynosa tekstovyh strok
iz programm na Si i sbora ih libo v otdel'nyj modul',
libo vo vneshnij fajl. V pervom rezhime komanda xstr
vedet fajl "strings", v kotorom sobrany tekstovye
konstanty raznyh chastej bol'shoj programmy. |ti
konstanty zamenyayutsya v programme ssylkami na soot-
vetstvuyushchuyu stroku v etom fajle vida "&xstr[nomer]".
Vo vtorom rezhime sozdaetsya fajl "Messages", v kotoryj
sobirayutsya dostatochno dlinnye (bol'she 12 bajtov)
tekstovye stroki. Obrashcheniya k etim strokam zamenyayutsya
na obrashcheniya k programme "Xsline(adres)", kotoraya chi-
taet stroku po ukazannomu adresu v bufer i vozvrashchaet
adres schitannoj stroki.
Ne vsegda takaya zamena strok korrektna. Komanda "xstr"
pri obrabotke teksta programmy vosprinimaet special'-
nye kommentarii, kotorye vyklyuchayut ili vklyuchayut raz-
lichnye rezhimy obrabotki programmy.
Komanda
xstr -c imya
206
APK.00210-01 33 01-5
vydelyaet iz fajla "imya", v kotorom nahoditsya ishodnyj
tekst programmy na yazyke Si, stroki i zamenyaet ih
ssylkami vida &xstr[chislo]. K fajlu dobavlyaetsya soot-
vetstvuyushchee ob'yavlenie massiva xstr. Rezul'tiruyushchij
tekst na Si pomeshchaetsya v fajl x.c i dolzhen zatem byt'
skompilirovan. Vydelennye stroki razmeshchyayutsya v fajle
strings, esli ih tam do etogo ne bylo. Povtoryayushchiesya
stroki i stroki, predstavlyayushchie soboj chasti sushchestvu-
yushchih strok, ne privodyat k izmeneniyam v fajle strings.
Posle togo, kak vse komponenty bol'shoj programmy skom-
pilirovany, dolzhen byt' sozdan fajl xs.c, inicializi-
ruyushchij massiv xstr, s pomoshch'yu komandy vida:
xstr
|tot fajl xs.c dolzhen byt' skompilirovan i zagruzhen
vmeste s ostal'noj programmoj. Massiv xstr mozhno pere-
vesti iz segmenta "data" v segment "text", (naprimer,
ottranslirovav ego na yazyk assemblera i pomenyav slovo
".data" na ".text" v poluchennom fajle).
Xstr mozhet takzhe rabotat' s odnim fajlom. Komanda:
xstr imya
sozdaet, kak i prezhde, fajly h.c i xs.c, ne pol'zuyas'
pri etom nikakim fajlom strings v tom zhe kataloge.
Vypolnenie xstr naibolee effektivno posle raboty prep-
rocessora Si, esli kakie-libo makroopredeleniya sozdayut
stroki ili esli imeetsya uslovno transliruemye chasti
207
APK.00210-01 33 01-5
programmy, soderzhashchie stroki, kotorye fakticheski mogut
ne ponadobit'sya. Esli zadan argument "-", xstr
schityvaet standartnyj fajl vvoda. Dlya vypolneniya xstr
posle preprocessora Si mozhet ispol'zovat'sya sleduyushchaya
posledovatel'nost' komand:
cc -C -P imya.c
xstr -c imya.i
cc -c h.c
mv h.o imya.o
rm imya.i
Esli ne dobavlyayutsya novye elementy, xstr ne izmenyaet
fajl strings; takim obrazom, mozhno izbezhat' povtornogo
sozdaniya xs.o, za isklyucheniem sluchaev, kogda eto dej-
stvitel'no neobhodimo.
Komanda:
xstr -x -c imya
sobiraet stroki v fajl "Mesages", i perepisyvaet prog-
rammu v fajl "x.c", zamenyaya stroki na obrashcheniya k
funkcii "Xsline(adres)", gde "adres" - adres stroki v
fajle "Messages". V programmu vstavlyaetsya opisanie
funkcii Xsline. Komanda:
xstr -x
sozdaet fajl "xs.c", soderzhashchij tekst funkcii Xsline.
Pri translyacii etot fajl nastraivaetsya na imya fajla s
208
APK.00210-01 33 01-5
tekstami diagnostik s pomoshch'yu makroperemennoj
"XSFILE":
cc -O -c -DXSFILE=
Dlya upravleniya obrabotkoj v programme na Si sluzhat
psevdokommentarii:
/*NOXSTR*/
blokirovka vynosa strok v rezhime "xstr -c" v
tekste za kommentariem;
/*NOXXSTR*/
to zhe samoe, no v rezhime "xstr -c -x";
/*YESXSTR*/ ili /*YESXXSTR*/
razreshenie vynosa strok v oboih rezhimah.
Estestvenno, chto, esli xstr ispol'zuetsya posle prepro-
cessora, dolzhen ispol'zovat'sya flag komandy cc "-C"
dlya togo, chtoby preprocessor ne unichtozhal kommentarii.
Pri ispol'zovanii "xstr -c" vynos strok dolzhen bloki-
rovat'sya v konstrukciyah inicializacii tipa:
char x[]="stroka";
Pri vynose stroki v fajl (rezhim "xstr -c -x") obrabot-
ka dolzhna blokirovat'sya vo vseh inicializaciyah dannyh,
a takzhe vezde, gde stroka budet ispol'zovat'sya skol'
nibud' prodolzhitel'no. |to svyazano s tem, chto pri zap-
rose u funkcii Xsline sleduyushchej stroki predydushchaya sti-
raetsya.
209
APK.00210-01 33 01-5
Pri ispol'zovanii "xstr -x -c" v programmah, kotorye
sobirayutsya s pomoshch'yu komandy "ldover", fajl "Messages"
mozhno dozapisat' v biblioteku razdelov zagruzki
"V.out.a"; v etom sluchae funkciyu Xsline (fajl xs.c)
translirovat' ne nuzhno.
ZAMECHANIYA:
Esli stroka yavlyaetsya suffiksom drugoj stroki, no bolee
korotkaya stroka pervoj prosmatrivaetsya xstr, v fajl
"strings" pomeshchayutsya obe stroki, hotya dostatochno bylo
by pomestit' tol'ko bolee dlinnuyu stroku.
210
APK.00210-01 33 01-5
IMYA:
yacc - kompilyator kompilyatorov.
FORMAT:
yacc [-vd][-f parser] grammatika
OPISANIE:
Yacc preobrazovyvaet bezkontekstnuyu grammatiku v nabor
tablic dlya prostogo avtomata, kotoryj vypolnyaet algo-
ritm grammaticheskogo razbora. Grammatika mozhet byt'
neodnoznachnoj, dlya ustraneniya neodnoznachnosti ispol'-
zuyutsya pravila starshinstva, zadavaemye pol'zovatelem.
Vyhodnoj fajl dolzhen byt' skompilirovan kompilyatorom
Si, v rezul'tate chego poluchaetsya programma yyparse.
|ta programma dolzhna byt' zagruzhena sovmestno s prog-
rammoj leksicheskogo analiza yylex, a takzhe programmoj
main i programmoj obrabotki oshibok yyerror. |ti prog-
rammy pishutsya pol'zovatelem. Dlya sozdaniya leksicheskih
analizatorov, kotorye mogut rabotat' s yacc, mozhno is-
pol'zovat' lex.
Esli zadan flag -v, yacc sostavlyaet fajl y.output, so-
derzhashchij opisanie tablic grammaticheskogo razbora i ot-
chet o konfliktah, svyazannyh s neodnoznachnostyami gram-
matiki.
Esli zadaetsya flag -d, generiruetsya fajl s operatorami
#define, v kotoryh ustanavlivaetsya svyaz' mezhdu "kodami
znakov", prisvaivaemyh yacc, i imenami znakov, ob'yav-
211
APK.00210-01 33 01-5
lyaemyh pol'zovatelem. |tim samym sozdaetsya vozmozhnost'
dostupa k kodam znakov iz drugih ishodnyh fajlov.
Esli zadan flag -f, ispol'zuetsya nestandartnyj gramma-
ticheskij analizator iz fajla, imya kotorogo zadaetsya
sleduyushchim za flagom argumentom, "parser". Po umolchaniyu
ispol'zuetsya "/usr/lib/yaccpar".
DOPOLNITELXNYE SSYLKI :
lex
DIAGNOSTIKA:
V standartnyj fajl vyvoda vydaetsya chislo konfliktov
reduce-reduce i shift-reduce. Soobshchaetsya takzhe, esli
nekotorye pravila ne dostizhimy so startovogo simvola.
ZAMECHANIYA:
Poskol'ku imena fajlov postoyanny, v odin i tot zhe
moment v zadannom kataloge mozhet byt' aktivnym tol'ko
odin process yacc.
2
APK.00210-01 33 01-5
ANNOTACIYA
Dannyj dokument soderzhit komandy obshchego naznacheniya
sistemy demos, prednaznachennye dlya neposredstvennogo vyzo-
va pol'zovatelem. Privodimye v prilozhenii komandy otrazhayut
tekushchee sostoyanie standartnoj operativnoj spravochnoj doku-
mentacii sistemy. Vse komandy v dokumente uporyadocheny v
alfavitnom poryadke. V dokumente dlya udobstva pol'zovaniya
opisanie komand nachinaetsya s novogo lista.
3
APK.00210-01 33 01-5
SODERZHANIE
1. KOMANDY OBSHCHEGO NAZNACHENIYA......................... 4
PRILOZHENIE............................................ 5
Last-modified: Mon, 29 Jun 1998 13:53:10 GMT