Neskol'ko prostejshih komand Unix (kurs molodogo bojca)
1.1. Sistema Unix razlichaet BOLXSHIE i malye bukvy, i k etomu
mozhno privyknut'.
1.2. Esli vy unichtozhili kakoj-nibud' fajl, to nikakih problem s
ego vosstanovleniem u vas ne budet. Potomu chto vosstanovit'
unichtozhennyj fajl v sisteme Unix NEVOZMOZHNO. V Unix otsutstvuet
komanda unerase, i k etomu tozhe nuzhno privyknut'. Virusy i
antivirusy v Unix tozhe otsutstvuyut. Tak chto poka hot' etoj
problemy u administratora mashiny ne budet.
1.3. V imeni fajla direktorii otdelyayutsya ot posleduyushchej chasti
simvolom "/". (Bill Gejts tozhe hotel, chtob u nego v MSDOS vse
kak v Unix bylo, vot i vzyal simvol "\" - pereputal - s kem ne
byvaet.)
Esli imya nachinaetsya so slesha - znachit, eto polnoe
marshrutnoe imya.
Prostoe imya fajla mozhet sostoyat' iz LYUBYH simvolov. Dlina
prostogo imeni ne bolee 256 simvolov. Dlina polnogo marshrutnogo
imeni fajla ne bolee 32000 simvolov (v nekotoryh Uni' - ne
bolee 1024 simvolov.)
1.4. Dlya zadaniya shablona imen ispol'zuyutsya simvoly "*"
(proizvol'naya posledovatel'nost' simvolov) i "?" (odin
proizvol'nyj simvol). Imya iz odnoj tochki "." oboznachaet tekushchuyu
direktoriyu, imya iz dvuh tochek ".." - vyshelezhashchuyu (roditel'skij
katalog).
1.5. CHtoby zapustit' programmu na vypolnenie, dostatochno
nabrat' ee imya i, esli nuzhno, drugie argumenty komandnoj
stroki. Imya programmy - eto marshrutnoe imya fajla, v kotorom eta
programma nahoditsya. Argumenty razdelyayutsya odnim ili
neskol'kimi probelami i tabulyatorami. Klyuchi komandy obychno (no
ne vsegda) vydelyayutsya znakom "-".
komanda -klyuchi -klyuchi ... prochie raznye argumenty ...
1.6. Esli komandnaya stroka konchaetsya znakom &, to komanda
zapustitsya parallel'no (fonom). Na terminale pechataetsya nomer,
kotoryj poluchaet zapushchennyj process. Posle chego mozhno
prodolzhat' rabotu, ne dozhidayas' zaversheniya fonovoj zadachi.
komanda -vsyakie raznye argumenty ... &
1.7. Komanda imeet tri predopredelennyh napravleniya
vvoda-vyvoda - standartnyj vvod, standartnyj vyvod i
standartnyj protokol. Kak pravilo, komanda beret ishodnye
dannye iz standartnogo vvoda i pechataet rezul'taty v
standartnyj vyvod. V standartnyj protokol pechatayutsya soobshcheniya
ob oshibkah i diagnostika. Pervonachal'no standartnye vvod, vyvod
i protokol naznacheny na terminal, odnako ih mozhno
perenaznachit', ispol'zuya sleduyushchie konstrukcii:
komanda > imya_fajla
(dlya standartnogo vyvoda),
komanda < imya_fajla
(dlya perenaznacheniya standartnogo vvoda),
komanda 2> imya_fajla
(dlya standartnogo protokola - sistemnoj diagnostiki).
Primer - zapisat' v fajl soderzhimoe tekushchej direktorii:
ls > infdir
Esli vyvod naznachen v fajl, to pered nachalom vypolneniya
komandy sozdaetsya pustoj fajl s sootvetstvuyushchim imenem (esli
fajl uzhe sushchestvoval, on opustoshaetsya), a zatem v nego
pomeshchaetsya informaciya. Esli informaciyu nuzhno dopisat' v konec
sushchestvuyushchego fajla, sleduet vospol'zovat'sya konstrukciej
komanda >> imya fajla
komanda 2>> imya fajla
1.8. Pol'zovateli sistemy Unix ob®edinyayutsya v gruppy, i kazhdaya
iz grupp obladaet opredelennym naborom prav dostupa k fajlam.
1.9. Programmy mogut raspoznavat' znacheniya peremennyh
okruzheniya, znacheniya kotoryh byli zadany pered ih zapuskom.
TERM=vt220
HOME=/home/moshkow
PATH=:/bin/:dss/rk:/home/moshkow/bin
1.8. Vydachu odnoj komandy mozhno perenapravlyat' na vhod drugoj
komandy. Dlya etogo ispol'zuetsya "|" - konvejer.
Primer: poschitat' summarnyj razmer i chislo strok vseh
fajlov v kataloge /tmp, imena kotoryh nachinayutsya s simvolov
"text" ...
cat /tmp/text* | wc -c
# Komanda cat slivaet vmeste vse fajly vida /tmp/text*,
# wc -c -l schitaet kolichestvo simvolov i chislo strok vo vhodnom
# potoke.
Ili prosmotret' s listaniem dlinnuyu vydachu komandy:
ps -ef | more
Togo zhe rezul'tata mozhno dostich' i bez konvejera takim obrazom:
ps -ef > temp-file
more temp-file
rm temp-file
2. Nekotorye naibolee upotrebitel'nye komandy.
pwd - poluchit' imya tekushchej direktorii
cd - izmenit' tekushchuyu direktoriyu
ls - raspechatat' informaciyu o fajlah ili direktoriyah
cat - slit' ili vyvesti fajly-argumenty na standartnyj vyvod
cp - kopirovat' fajly
mv - peremestit' (pereimenovat') fajly
ln - sozdat' ssylku na fajl
rm - udalit' fajly
rmdir - udalit' direktoriyu
mkdir - sozdat' direktoriyu
echo - vyvesti argumenty komandnoj stroki na standartnyj vyvod
ps - raspechatat' informaciyu i nomera vypolnyaemyh processov
kill - "ubit'" vypolnyaemyj proces po ego nomeru
man - vydat' spravku ob ispol'zovanii i klyuchah komandy
2.1 pwd Vydat' imya tekushchej direktorii.
pwd
2.2 cd Smenit' tekushchuyu direktoriyu.
cd [ direktoriya]
cd /usr/spool/lp/adm
cd ..
Esli direktoriya ne ukazana, vy popadaete v svoj "domashnij"
katalog $HOME
2.3 ls Raspechatat' katalog.
Format komandy: ls [klyuchi] [imena]
imena - imena fajlov ili direktorij; dlya direktorij
raspechatyvaetsya spisok vhodyashchih v nee fajlov, dlya fajlov -
vyvoditsya ego imya i dopolnitel'naya informaciya.
Imena fajlov sortiruyutsya po alfavitu.
Bez argumentov ls vydaet soderzhimoe tekushchej direktorii.
ls -al - vyvod v dlinnom polnom formate:
chislo vladelec vremya modifikacii
linkov gruppa imya fajla
(imen) razmer
-rwxr-xr-x 1 moshkow sys 17 Oct 18 16:13 ../jean
drwxr-xr-x 1 moshkow sys 12 Oct 18 16:11 ../jelly
-rwxr-xr-x 1 moshkow sys 0 Oct 13 14:14 ../j.bu.txt
^^ ^ ^
|| | |
|| | +----- prava vseh "ostal'nyh" po otnosheniyu k fajlu
|| +-------- prava odnoj s nim gruppy
|+----------- prava "vladel'ca" fajla
+------------ "-" - znachit fajl, "d" - direktoriya
Prava:
r - fajl dostupen dlya chteniya,
w - fajl dostupen dlya zapisi,
x - fajl yavlyaetsya vypolnimym,
- - dannoe pravo dostupa otsutstvuet.
-a - vyvesti vse fajly (dazhe esli imena nachinayutsya s tochki);
-x - vyvod v 4 kolonki;
-t - imena fajlov sortiruyutsya ne po alfavitu, a po
vremeni poslednego izmeneniya
-R - rekursivno projti po vsem podkatalogam
ls -CF - oglavlenie kataloga v neskol'ko stolbikov
ls -al - oglavlenie v polnom formate
2.4 cat Slit' i vyvesti fajly na standartnyj vyvod.
Format komandy: cat fajl1 [fajl2... ]
Cat vyvodit soderzhimoe perechislennyh na standartnyj vyvod.
Primer:
cat fajl
raspechatyvaet soderzhimoe fajla, a
cat fajl1 fajl2 > fajl3
slivaet pervye dva fajla i pomeshchaet rezul'tat v tretij. CHtoby
dobavit' soderzhimoe fajla1 k fajlu2, nado vypolnit' komandu
cat fajl1 >> fajl2
2.5 more, pg Prosmotret' fajl postranichno.
more file_name ...
pg file_name ...
less file_name ...
Vse eti komandy pozvolyayut prosmatrivat' fajl, listaya ego
poekranno. Prosmotrom mozhno upravlyat' s pomoshch'yu klavish. Samoe
udobnoe upravlenie u komandy "less", samoe "dubovoe" - u "pg"
q - zavershit' prosmotr
PROBEL - pokazat' sleduyushchuyu stranicu
ENTER - sdvinut'sya na odnu stroku
b - pokazat' predydushchuyu stranicu
/ - poisk
h - Help - posmotret' spisok vseh vozmozhnyh komand
more,less,pg ispol'zuyut, chtoby posmotret' "dlinnuyu" vydachu
komandy, stavya ego konvejerom "ej na hvost"
ls -al | more - prosmotret' oglavlenie
ps -e | pg - prosmotret' spisok rabotayushchih processov
Format komandy: cp fajl1 fajl2
cp fajl1 [fajl2 ...] katalog
|ta komanda kopiruet fajl1, ... , v FAJL. Esli FAJL - eto
direktoriya, to fajl1 i dr. kopiruyutsya v nee pod svoimi imenami.
Esli FAJL ne sushchestvoval, to on sozdaetsya, esli sushchestvoval,
ego staroe soderzhimoe teryaetsya.
2.7 mv Peremestit' (pereimenovat') fajly.
Format komandy: mv fajl1 fajl2
mv fajl1 [fajl2 ...] katalog
Komanda analogichna komande cp, no ishodnyj fajl unichtozhaetsya.
Ee osnovnaya rol' - pereimenovanie fajlov i perenos fajlov iz
odnoj direktorii v druguyu). Primer:
mv /dss/*/rk_*.help /dss/delo
Format komandy: ln fajl1 fajl2
# sozdaetsya "zhestkij" link
ln -s fajl1 fajl2
# sozdaetsya "simvolicheskij" link
|ta komanda sozdaet fajlu fajl1 eshche odno imya. V itoge fajl1 i
fajl2 na samom dele fizicheski yavlyayutsya odnim i tem zhe fajlom.
Esli vy sozdaete tak nazyvaemyj "simvolicheskij link"
(ispol'zuya klyuch "-s"), to fajl file1 pri etom ne obyazan
sushchestvovat'. Imya "fajl2" pri etom vse ravno budet sozdano.
2.9 rm Udalit' fajl ili direktoriyu.
Format komandy: rm [-fri] fajl ...
-i - prosit' podtverzhdeniya na kazhdoe udalenie
-r - rekursivno udalit' vmeste s podkatalogami
-f - ne prosit' podtverzhdeniya, a srazu udalyat'
Dlya udaleniya pustoj direktorii mozhno vospol'zovat'sya komandoj
rmdir direktoriya ...
CHtob udalit' nepustuyu direktoriyu, nuzhno vypolnit' komandu
rm -r direktoriya
VNIMANIE: Vvidu togo, chto pod shablon ".*" podhodit katalog ".."
NIKOGDA NE DELAJTE KOMANDY # rm -r .*
(Hotya bol'shinstvo unix'ov proshchayut podobnuyu oshibku, no NE VSE -
v SCO riskuete naporot'sya)
2.10 mkdir Sozdat' direktoriyu.
Dlya sozdaniya direktorii primenyaetsya komanda mkdir.
Format komandy: mkdir imya_direktorii ...
2.11 chmod Izmenenie prav dostupa k fajlam.
Komanda chmod menyaet atributy (prava dostupa) fajla.
Prostavit' fajlam pravo na vypolnenie:
chmod u+x file1
Razreshit' ostal'nym pol'zovatelyam ispravlyat' fajl
chmod a+w file1
echo Komanda vyvodit na standartnyj vyvod svoi argumenty
echo "\017"
Vyvesti na terminal simvol Ctrl-O, on zhe 017 vos'merichnoe.
Vosstanavlivaet latinicu na terminalah tipa vt220 i at386
Dlya sozdaniya fajla mozhno vospol'zovat'sya sleduyushchimi sposobami:
touch primer # sozdaet pustoj fajl primer;
cat > primer # sozdaet fajl primer i pishet v nego
# so standartnogo vvoda. Zapis' v fajl zakonchitsya
# posle nazhatiya CTRL+D.
2.14 ps Kakie programmy vypolnyayutsya.
Soobshchaet nomera processov, kotorye vypolnyayutsya v sisteme.
ps - zapushchennye tol'ko s etogo terminala
ps -ef - vse, v "polnom" formate (v SYSV Unix)
ps -ax - vse, v "polnom" formate (v BSD* i Linux)
2.15 kill Prervat' process.
Komanda kill posylaet ukazannomu processu signal nemedlennoj
ostanovki.
Prervat' process nomer 1078 (nomer mozhno uznat' komandoj ps -e)
kill -9 1078
Prervat' programmu na vashem terminale, zapushchennuyu NE v fonovom
rezhime, mozhno nazhatiem klavishi CTRL-C, ili klavishi CTRL-\
2.16 man Esli vy zabyli, kak pol'zovat'sya komandoj.
Kak pravilo, pri zapuske komandy bez argumentov ona vydaet
format svoego vyzova. No dlya bol'shinstva komand dostatochno
polnuyu informaciyu vy mozhete poluchit' tak:
man imya_interesuyushchej_vas_komandy
man -k klyuchevoe_slovo # spisok komand, otnosyashchihsya k ...
Dlya togo, chtoby srabatyvala komanda man -k, fajly dokumenacii dolzhny
byt' predvaritel'no proindeksirovany. Dostigaetsya eto komandoj
catman -w
2.17 who Kto rabotaet v sisteme.
who - etimi komandami mozhno uznat', kto vy takoj
who am i i kto eshche rabotaet v sisteme
finger
last | more
id
man -k who - soobshchit vse vozmozhnye komandy, kotorymi mozhno
uznat', kto i chto delaet v sisteme.
Last-modified: Sun, 07 Aug 2005 11:40:06 GMT