&dDVvedenie v sistemnoe administrirovanie Unix&d@ (Versiya 1.17. iyun' 1998) (C) Copyright Maksim Evgen'evich Moshkov, 1993-1998 ================ KOORDINATY =============================== Maksim Evgen'evich Moshkov NII Sistemnyh Issledovanij RAN, Inf.sektor Otdeleniya Matematiki Prezidiuma RAN 956-2155, 274-6329, 938-1902 moshkow@ipsun.ras.ru ¡ mailto:moshkow@ipsun.ras.ru http://www.ras.ru/~moshkow/ ¡ http://www.ras.ru/~moshkow/ . &dDVVEDENIE V SISTEMNOE ADMINISTRIROVANIE UNIX&d@ &dDOGLAVLENIE&d@ Oglavlenie () Vklyuchenie Unix-komp'yutera () Registraciya novogo pol'zovatelya () Nachalo raboty v sisteme () Neskol'ko prostejshih komand Unix () Redaktor VI dlya nachinayushchih () Kakie byvayut Unix () Komanda find, grep () Komanda cpio, tar i arhivirovanie () Zagruzka operacionoj sistemy, process init () Bazovye principy sistemy Unix () Special'nye fajly () Diski, fajlovye sistemy () Vydelenie razdelov pod Swaping () Installyaciya sistemy () Pakety: ustanovka dopolnitel'nogo softa () Neskol'ko setevyh komand Unix (telnet, ftp, mailx...) () Hardware lokal'nyh setej: Ethernet, Token ring, FDDI () Hardware global'nyh setej () Marshrutizaciya TCP/IP (kartinka) () Set' TCP/IP () TCP/IP dlya bednyh () Setevaya fajlovaya sistema NFS () NFS: konfigurirovanie avto-montirovshchika () Konfigurirovanie DNS () Sistema telefonnoj peresylki fajlov UUCP () Sistema pechati LP () Graficheskij interfejs Unix - X Windows () &dDPrilozheniya&d@ Redaktor VI () Kak podklyuchit' russkie fonty k X Windows () CHto gde lezhit v SVR4 () Konfigurirovanie DNS. Primer standalone konfiguracii () Knizhki pro Unix () Neskol'ko upravlyayushchih komand modema () Konfigurirovanie servera HTTPD, format HTML () Remont razrushennyh fajlovyh sistem () Istorii administratora Unix, ili GRABLI () . &dDVklyuchenie Unix-komp'yutera&d@ Vklyuchite sistemnyj displej ili (pri otsutstvii takovogo) konsol'nyj terminal, vklyuchite pitanie na sistemnom bloke. Zagruzka operacionnoj sistemy nachnetsya avtomaticheski. Ostalos' nemnogo podozhdat', poka zagruzitsya operacionnaya sistema i otrabotayut vse polozhennye utility inicializacii sistemy, i vot na konsoli poyavlyaetsya priglashenie Console login: a na vseh ostal'nyh terminalah - prosto: Login: Vvedite svoj vhodnoj login i parol'. Esli takovyh ne sushchestvuet, vojdite pod login'om root - "superpol'zovatel'" - iznachal'no on ne imeet parolya. Console login: root &dDSUN: Perehvat zagruzki v ruchnoj rezhim&d@ Process normal'noj raboty Sun SPARCstation v lyuboj moment vremeni mozhno perehvatit' i peredat' upravlenie na boot-prom. Dlya etogo na sistemnoj klaviature nazhmite STOP+A. (STOP - levaya verhnyaya klavisha na levoj dopolnitel'noj klaviature). Poyavitsya boot-prom prompt Ok: Ok _ Teper' mozhno vvodit' komandy dlya boot-monitora. Pozhaluj, naibolee populyarnymi komandami yavlyayutsya: go - vyjti iz monitora, vernut'sya v normal'nyj rezhim help boot [parametry] - zagruzit'sya eject - vytolknut' "zastryavshij" floppi-disk ili CD-ROM probe-scsi - oprosit' opoznannye SCSI-ustrojstva (posle etoj komandy vozvrashchat'sya k normal'noj rabote komandoj "GO" NELXZYA. Perezagruzites'.) Esli u vas "bezgolovyj" Sun - server, to k nemu v kachestve konsolya podklyuchaetsya alfavitno-cifrovoj terminal. Podklyuchat' mozhno k lyubomu posledovatel'nomu portu - A ili B. Sun, zametiv otsutstvie sistemnoj klaviatury, oprashivaet vse porty po ocheredi i, obnaruzhiv na odnom iz nih terminal, delaet ego konsol'nym (so vsemi vytekayushchimi iz etogo posledstviyami). CHtoby vyzvat' boot-monitor s alfavitnogo konsolya, nazhmite na nem klavishu BREAK ( Na terminale vt220 BREAK - eto klavisha F5). Vyklyuchat' alfavitno-cifrovoj konsol' na Sun-servere nel'zya - pri etom terminal generit signal BREAK, i Sun perehodit v ostanov v boot-monitore. Kak otklyuchit' etu interesnuyu osobennost' bezgolovyh Sun-serverov, mne ne izvestno. Na samom dele u etoj problemy sushchestvuet azh tri resheniya: ¡ rs232c.txt#5 Odno iz nih - novyj TTY-draver "CONSULT-ZSBRK", kotoryj ignoriruet BREAK. &dDHP 9000: Perehvat zagruzki v ruchnoj rezhim&d@ Process normal'noj zagruzki HP 9000 mozhno perehvatit' i peredat' upravlenie na boot-prom PDC (Processor Depended code). Dlya etogo posmotrite na konsol' v pervye sekundy zagruzki - tam pishetsya klavisha, kotoruyu nuzhno nazhat' dlya perehvata. Na rabochih stanciyah eto ESCAPE, na serverah - Ctrl-K (ili Break, ili eshche kakaya-nibud') Poyavitsya PDC-prompt BOOT-ADMIN> Teper' mozhno vvodit' komandy dlya boot-monitora. Pozhaluj, naibolee populyarnymi komandami yavlyayutsya: help search - najti zagruzochnye SCSI-ustrojstva boot [parametry] - zagruzit'sya secure on - zapret perehvata nachal'noj zagruzki (chtoby potom sdelat' secure off, pridetsya vynut' iz komp'yutera disk i perezagruzit'sya) Esli u vas "bezgolovyj" server, to k nemu v kachestve konsolya podklyuchaetsya alfavitno-cifrovoj terminal. Podklyuchayut ego k konsol'nomu portu. . &dDRegistraciya novogo pol'zovatelya&d@ Esli vam v ruki popalas' svezheustanovlennaya mashina, to na nej eshche ne zaregistrirovano nikakih pol'zovatelej za isklyucheniem superpol'zovatelya "root" - sistemnogo administratora. Parolya u nego net. Vhodite v nego. V superpol'zovatelya mozhno prevratit'sya. Dlya etogo vypolnite komandu su # Super User Kazhdyj pol'zovatel' v sisteme Unix predvaritel'no dolzhen byt' zaregistrirovan. Pol'zovatelyu polagaetsya imet': imya, parol', nomer pol'zovatelya, nomer gruppy, k kotoroj on prinadlezhit, domashnij katalog, komandnyj interpretator. U parolya mogut byt' dopolnitel'nye parametry - kak chasto ego mozhno menyat', vremya dejstviya i prochie sekretnye shtuchki. Comment Familiq Imya Otchestwo logname vhodnoe imya pol'zovatelya passwd parol' (parol' vvodyat dvazhdy) UID User Identification Descriptor GID Group Identification Descriptor $HOME Domashnij katalog shell Komandnyj interpretator &dDByvayut takie komandnye interpretatory&d@: /usr/local/bin/bash Samyj udobnyj /bin/ksh CHut' pohuzhe, no tozhe nichego /usr/local/bin/tcsh Udobnyj, no "nepravil'nyj" i medlennyj /bin/sh Samyj "pravil'nyj" i samyj neudobnyj /bin/csh "Nepravil'nyj" i chut' bolee udobnyj /etc/passwd - Vsya informaciya o pol'zovatele hranitsya zdes'. /etc/shadow - Zdes' hranyatsya zakodirovannye paroli. Zakodirovannye paroli mogut lezhat' i v drugih mestah. Zavisit ot vida Unix. V lyubom uvazhayushchem sebya Unix imeetsya "golovnaya" utilita operatora (uslovno nazyvaemaya sysadm) - dialogovaya programma, s menyushkami i okoshkami dlya vypolneniya nasushchnyh zadach po sistemnomu administrirovaniyu. V tom chisle pozvolyaet registrirovat' novyh pol'zovatelej. Zapuskat' ee mozhet tol'ko "superpol'zovatel'" root. Pri zapuske "sysadm" mozhet sprosit' tip terminala, na kotorom emu predstoit rabotat'. Otvet'te: vt100 Primechanie. V razlichnyh operacionnyh sistemah eta utilita mozhet nazyvat'sya po-raznomu: admintool Solaris 2 adminsuite Solaris 2.7 sysadmsh SCO UNIX 4 scoadmin SCO OpenServer 5 smit, msmit AIX sam HP-UX control-panel Linux RedHat sysadm UnixWare, ISC, SVR4 &dDKomanda registracii novogo pol'zovatelya&d@. adduser Linux useradd SunOS 4.1 vipw BSD/OS, FreeBSD &dDKak zaregistrirovat' novogo pol'zovatelya "vruchnuyu"&d@. 1. Vstavlyaem v /etc/passwd eshche odnu strochku: moshkow:x:555:1:Maksim E. Moshkow:/home/moshkow:/bin/ksh 2. Privodim v sootvetstvie fajl /etc/shadow pwconv 3. Sozdaem pol'zovatel'skij katalog mkdir /home/moshkow chown moshkow /home/moshkow 4. Zadaem parol' novomu pol'zovatelyu passwd moshkow 5. Vot i vse. . &dDNachalo raboty v sisteme&d@ &dDVhod v sebya&d@ Na ekrane terminala poyavitsya stroka login: Vvedite imya, pod kotorym vy zaregistrirovany v sisteme, esli nuzhno, parol'. Esli Vy oshiblis' pri vvode imeni, nazhmite CTRL+U, ili DEL, ili CTRL-D (dlya otmeny), ili neskol'ko raz nazhmite na Return, poterpite nemnogo i povtorite vvod. Na ekrane poyavitsya priglashenie komandnogo interpretatora. sunsite:~/$ _ CHtoby vyjti iz sistemy, naberite komandu exit ili prosto nazhmite Ctrl-D na pustoj strochke. &dDPeremennye okruzheniya&d@. Pri vhode v sistemu dlya pol'zovatelya avtomaticheski ustanavlivaetsya neskol'ko peremennyh okruzheniya. CHtoby posmotret' ih znachenie, vypolnite komandu env. env # Raspechatat' proeksportirovannye peremennye okruzheniya LOGNAME=moshkow # imya pol'zovatelya HOME=/home/moshkow # ego domashnij katalog SHELL=/bin/ksh # ego komandnyj interpretator MAIL=/usr/mail/moshkow # fajl, v kotoryj skladyvaetsya # prihodyashchaya emu pochta PS1=host1:$PWD/$ # format priglasheniya PATH=:/usr/local/bin:/bin:/usr/bin:/usr/X11/bin:/usr/informix/bin: # spisok poiska, po kotoromu ishchutsya vypolnimye fajly TERM=vt100 # ustanavlivaet tip terminala, na # kotorom rabotaet pol'zovatel' CHtoby zadat' znachenie peremennoj okruzheniya, vypolnite komandu: Imya_Pereemennoj=znachenie export Imya_Pereemennoj naprimer abc=Kalosha export abc prosmotret' znachenie peremennoj mozhno komandoj echo v takoj forme: echo $abc &dDPol'zovatel'skij profajl&d@ Pered vhodom v sistemu sperva vypolnyaetsya obshchesistemnyj profajl /etc/profile Zatem vypolnyaetsya pol'zovatel'skij fajl ".profile" (esli on est') - v nih mozhno ustanavlivat' peremennye okruzheniya i delat' ustanovki rezhimov terminala. Prosmotret' ustanovlennye peremennye okruzheniya mozhno komandoj env ##### Primer fajla .profile ################################## # Dobavit' k spisku poiska katalogi s nuzhnymi programmami PATH=:$HOME/bin:$PATH:/usr/sbin:/usr/local/bin:/usr/informix/bin # Razreshit' redaktirovanie komandnoj stroki v ksh EDITOR=emacs export PATH EDITOR LC_CTYPE=iso_8859_1 export LC_CTYPE # russkie bukvy - "bukvy" # Harakteristiki terminala # Zaboj=BackSpace Steret'Stroku=Ctrl-U # Prervat'Programmu=Ctrl-C "ZHestokoe_preryvanie"=Ctrl-| stty erase "^h" echoe kill "^u" quit "^|" intr "^c" stty cs8 -parenb -istrip # 8-bitnye simvoly, noparity, ne usekat' 8-j bit # pri vvode case "$0" in # V zavisimosti ot komandnogo interpretatora *ksh) # V Korn Shelle # Redaktirovat'sya strelochkami alias __A=`echo "\020"` # ^P = vos'merichnyj 020 alias __B=`echo "\016"` # ^N alias __C=`echo "\006"` # ^F alias __D=`echo "\002"` # ^B # V priglashenie stavit' tekushchij pwd PS1=$LOGNAME@`uname -n`:'$PWD/$ ' export PS1 ;; *bash) # V bash'e v priglashenie stavit' host:pwd PS1='\h:\w/\$ ' export PS1 ulimit -Sc 0 # chtob programmy core ne ronyala ;; *sh) # dlya posix-shell i HP-UX PATH=$PATH:/usr/sbin PS1=$LOGNAME@`uname -n`:'$PWD/$ ' HISTFILE=$HOME/.sh_history ENV=$HOME/.kshrc export PATH ENV HISTFILE PS1 # i ne zabyt' v fajl .kshrc vpisat' set -o emacs ;; esac # obratite vnimanie: v nekotoryh mestah PROSTAYA kavychka _'_ # a v drugih - OBRATNAYA _`_ - bud'te vnimatel'ny, eto vazhno. &dDKlavishi dlya redaktirovaniya komandnoj stroki&d@ Esli vy rabotaete v komandnom interpretatore Korn-Shell /bin/ksh, i u vas ustanovlena peremennaya EDITOR=emacs, to vy smozhete redaktirovat' komandnuyu stroku s pomoshch'yu strelok i Ctrl-klavish: ^P / ^N PREVIOUS / NEXT komanda ^F / ^B FORWARD / BACK na poziciyu ^A / ^E v NACHALO / KONEC stroki ^D / ^K Udalit' SIMVOL / Udalit' KONEC STROKI ^Y Vspomnit' udalennoe ^R Poisk predydushchej komandy ESC ESC Dobit' imya fajla ESC = Raspechatat' pohozhie imena fajlov a esli komandnyj interpretator bash, to obe eti komandy sidyat na klavishe TAB &dDVyklyuchenie sistemy&d@ CHtoby nachat' process vyklyucheniya sistemy, sleduet, buduchi pol'zovatelem root i nahodyas' v kornevom kataloge, vypolnit' komandu cd / shutdown -y -g0 -i0 Dozhdites' polnogo okonchaniya razgruzki sistemy i tol'ko togda vyklyuchajte pitanie. Dlya perezagruzki sistemy vypolnite komandu shutdown -y -g0 -i6 Perezagruzit' ili razgruzit' sistemu mozhno takzhe i iz menyu sistemnogo administratora komandy sysadm. V nekotoryh realizaciyah Unix (v chastnosti, v BSD, SunOS, Linux, HP-UX) komanda shutdown ispol'zuet drugie klyuchi. Poprobujte v etom sluchae: shutdown -y -h now # dlya ostanovki shutdown -y -r 60 # dlya perezagruzki cherez 60 sekund . &dDNeskol'ko prostejshih komand Unix (kurs molodogo bojca)&d@ 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 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 &dD2. Nekotorye naibolee upotrebitel'nye komandy&d@. 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 &dD2.1 pwd Vydat' imya tekushchej direktorii&d@. pwd &dD2.2 cd Smenit' tekushchuyu direktoriyu&d@. cd [ direktoriya] cd /usr/spool/lp/adm cd .. Esli direktoriya ne ukazana, vy popadaete v svoj "domashnij" katalog $HOME &dD2.3 ls Raspechatat' katalog&d@. 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 "prochih" 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 &dD2.4 cat Slit' i vyvesti fajly na standartnyj vyvod&d@. 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 &dD2.5 more, pg Prosmotret' fajl postranichno&d@. 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 &dD2.6 cp Kopirovat' fajly&d@. 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. &dD2.7 mv Peremestit' (pereimenovat') fajly&d@. 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 &dD2.8 ln Svyazat' fajly&d@. 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. &dD2.9 rm Udalit' fajl ili direktoriyu&d@. 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) &dD2.10 mkdir Sozdat' direktoriyu&d@. Dlya sozdaniya direktorii primenyaetsya komanda mkdir. Format komandy: mkdir imya_direktorii ... &dD2.11 chmod Izmenenie prav dostupa k fajlam&d@. 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 &dD2.12 echo |ho&d@. 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 &dD2.13 Sozdat' fajl&d@. 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. &dD2.14 ps Kakie programmy vypolnyayutsya&d@. 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) &dD2.15 kill Prervat' process&d@. 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-\ &dD2.16 man Esli vy zabyli, kak pol'zovat'sya komandoj&d@. 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 ... &dD2.17 who Kto rabotaet v sisteme&d@. 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. . &dDOchen' kratko o redaktore "VI"&d@ Po ne znayu kakoj uzh tam istoricheskoj tradicii "chestnye" (kanonicheskie) sistemy Unix ne imeyut v svoem bazovom komplekte ni odnogo normal'nogo (eshche raz podcherknu eto slovo - NORMALXNOGO) tekstovogo redaktora. Poetomu sistemnyj administrator obyazan umet' pol'zovat'sya tem, chto emu dayut. A dayut emu nesravnennyj "Vizual'nyj" ekrannyj redaktor fajlov - Redaktor VI. &dDRedaktor VI imeet tri rezhima:&d@ 1. Komandnyj - v etom rezhime mozhno peremeshchat'sya po fajlu i vypolnyat' redaktiruyushchie komandy nad tekstom. Komandy vyzyvayutsya OBYCHNYMI LATINSKIMI BUKVAMI. 2. Vvoda teksta - v etom rezhime obychnye latinskie bukvy budut vstavlyat'sya v tekst. 3. Rezhim strochnogo redaktora ED ispol'zuetsya dlya upravleniya fajlami (tipa sohranit' fajl, zachitat' fajl i t.d.) Prochitajte predydushchij abzac eshche raz. Vy eshche ne ispugalis'? Horosho. Poehali. Itak: vi imya_fajla VI v KOMANDNOM REZHIME. CHTOBY VYJTI IZ FAJLA BEZ SOHRANENIYA, nazhmite: ESC : q ! Enter chtoby vyjti iz fajla, sohraniv izmeneniya, nazhmite: ESC : w ! Enter ESC : q Enter vyjti iz fajla s sohraneniem, odnoj komandoj: ESC : wq Enter &dDdlya perehoda V REZHIM VVODA nuzhno nazhat' komandy tipa:&d@ "i" vstavlyat' zdes' "A" vstavlyat' s konca stroki "cw" zamenyat' tekushchee slovo ESC dlya VOZVRATA V KOMANDNYJ REZHIM CTRL-[ dlya vozvrata v komandnyj rezhim dlya perehoda V REZHIM UPRAVLENIYA FAJLAMI nuzhno nazhat' ":" (perejti v rezhim redaktora ED) &dDDvigat'sya po fajlu mozhno komandami:&d@ h,j,k,l vlevo, vniz, vverh, vpravo Ctrl-F Na stranicu vniz Ctrl-B Na stranicu vverh A esli vam ochen' povezet, to mozhno budet dvigat'sya strelochkami. CHtoby perejti v rezhim vezeniya, nuzhno opisat' dlya operacionnoj sistemy vash terminal. |tim zajmemsya v dal'nejshem (sm. "Opisanie terminalov, terminfo, termcap"). ¡ terminfo.txt Podgonite kursor k nuzhnomu mestu i nazhmite i perevod v rezhim vvoda vvodite trebuemyj tekst ESC prekratit' vvod, perejti v komandnyj rezhim Podgonite kursor k nenuzhnomu mestu i nazhmite x udalit' simvol dd udalit' strochku &dDEshche parochka poleznyh komand:&d@ o vstavlyat' s novoj stroki (pod tekushchej strokoj) a v rezhim vvoda ZA kursorom 5yy zapomnit' 5 strochek Podgonite kursor k nuzhnomu mestu p vstavit' zapomnennye stroki pod kursorom P vstavit' zapomnennye stroki NAD kursorom J Skleit' dve stroki /SHablon poiska Enter - poisk n Povtorit' poisk Na etom oznakomlenie s redaktorom VI mozhno schitat' zakonchennym. Togo, kto schitaet, chto VI mozhet predostavit' bol'she udobstv i komand po redaktirovaniyu, ya otsylayu k prilagaemomu zdes' spravochniku-pamyatke "naibolee upotrebitel'nye komandy VI", nu, i, estestvenno (kak vsegda), k dokumentacii. Ostal'nyh ya otsylayu ¡ vibegin.txt k ne menee udivitel'nomu v svoem rode redaktoru EMACS, kotorym, ne smotrya na eto, rekomenduyu pol'zovat'sya vpred'. . &dDKakie Unix'y byvayut v prirode?&d@ &dDGenealogicheskoe drevo&d@ Pochti srazu posle rozhdeniya Unix raskololsya na dve vetvi - vetv' kak by "praroditel'skaya", kotoroj vladeet "oficial'nyj" hozyain torgovoj marki Unix - Unix System Laboratory - fakticheski vetv' kommercheskaya. I proekt Issledovatel'skogo instituta Berkli - vetv' v osnovnom svobodnyh - besplatnyh Unix'ov. System III System 6 USL <-- Raskol --> Berkeley System 7 BSD 4.0 Unix V 3.1 Unix V 3.2 <------- BSD 4.2 / BSD 4.3 System V Release 4 / Zaimstvovaniya / BSD 4.4 Konec proekta Berkli SVR4.0 < < ____________________________________ SVR4.1 SVR4.2 Ne tak davno USL taki okonchatel'no "zasudila" BSD za ispol'zovanie fragmentov koda s kopirajtom AT&T, chto v nemaloj stepeni sposobstvovalo zakrytiyu proekta BSD. Predposlednij iz krupnejshih postavshchikov kommercheskih BSD-podobnyh sistem - Sun/SunOs pereshli na liniyu SVR4. Torzhestvenno i oficial'no ob®yavleno, chto SVR4 yavlyaetsya edinstvennym naslednikom, ob®edinivshim luchshie resheniya, prishedshie iz Unix V i BSD. Poslednim iz mogikan ostaetsya DEC: ego OSF/1 dlya Alpha AXP - nemnogo iskalechennyj, no vse zhe dostatochno blizkij k kornyam BSD 4.3. &dDUnix'y dlya IBM/PC&d@ &dDNekommercheskie ili uslovno besplatnye&d@ BSD/OS 2.0 BSDi/386 Nedorogoj kommercheskij. Horosho podderzhivaetsya. Podderzhivaet binarnuyu sovmestimost' s SCO Unix 386bsd BSD 4.3 dlya Intelevskoj platformy NetBSD proizvodnaya ot 386bsd FreeBSD 2.1 Samaya kachestvennaya set'. Daby ne svyazyvat'sya s USL, v nem polnost'yu zanovo perepisany kuski yadra, na kotoryh stoyal kopirajt AT&T. Linux 2.0.30 Samyj populyarnyj sredi besplatnyh Unix'ov. CHislo installyacij ocenochno mezhdu 100 tys. i 1 mln. Nepreryvnoe sovershenstvovanie silami soten dobrovol'cev dovelo ego do urovnya dovol'no nadezhnoj, bystroj, kachestvennoj i udobnoj sistemy, prigodnoj dlya raboty kak v kachestve graficheskoj rabochej stancii, tak i internet-servera. Podderzhivaet bol'she vseh prilozhenij i hardware. Podderzhivaet specifikacii iBCS, i potomu mozhet vypolnyat' kommercheskie prilozheniya dlya SCO, v chastnosti, Oracle i Informix. V Linux realizovany klient i server Netware i Samba. |mulyatorom MS Windows WABI pol'zovat'sya ochen' dazhe mozhno. &dDKommercheskie Unix'y&d@ UnixWare 2.1 SVR4.2 ot SCO. Sovmestima s Windows i Netware. Do sih por ne dovedena do uma set'. Podderzhivaet mul'tiprocessornye PC. Posle togo kak ee u Novell perekupilo SCO, budushchee etoj sistemy perestalo dlya menya kazat'sya stol' uzh zamanchivym. Solaris 2.5 SVR4.0 ot SunSoft. Sovsem kak na Sun'e. V principe, eto dolzhno govorit' samo za sebya. Nachinaya s 5-j versii v Solaris nakonec prishel Motif. SCO Unix 4.0 SVR3.2 Poka lider po kolichestvu ustanovok sredi vseh Unix'ov dlya PC. Staraya nadezhnaya otlazhennaya sistema. Podderzhivaet dostatochno mnogo hardware. Podderzhivaet mul'tiprocessornye PC. Nepomerno dorog. Moral'no ustarel. Imeet problemy s rusifikaciej. Medlennyj. ISC Unix 3.2 Nadezhen i kompakten v rabote. Moral'no ustarel. &dDUnix'y, postavlyaemye proizvoditelyami komp'yuterov&d@ Mashina Operacionnaya sistema "Original" Sun 1,2,10,... SunOS 4.1.2 BSD 4.3 Sun 10,20,1000 SunOS 5.5 SVR4.0 IBM RS/6000 AIX SV 3.2 HP 9000 HP-UX 10 BSD 4.2 & SV 3.2 Sequent Dynix SV 4.0 Motorola 922 SVR4/88 SVR4.0 Besta-88 Bestix SV 3.1 DEC Ultrix BSD 4.2 DEC Alpha AXP OSF/1 BSD 4.3 SGCS Silicon Graphic IRIX 6.0 Vybiraya platformu, my avtomaticheski poluchaem s nej "ee sobstvennyj" Unix. S tochki zreniya udobstva i cel'nosti administratorskogo upravleniya samye priyatnye iz nih - HP-UX 10.20 i AIX. A samyj rasprostranennyj - Solaris 2.5 (estestvenno). . &dDKomandy poiska GREP i FIND&d@. Komanda grep/egrep "fil'truet" stroki - ostavlyaya tol'ko "podhodyashchie" pod shablon egrep shablon [ file ... ] V shablon mogut vhodit' obyknovennye simvoly (predstavlyayushchie sami sebya), a takzhe - specsimvoly, vypolnyayushchie sluzhebnye funkcii shablona: . * ^ $ [ ] . - lyuboj proizvol'nyj simvol * - "mnozhitel'" (predydushchij simvol lyuboe chislo raz) .* - lyubaya posledovatel'nost' simvolov ^shablon - privyazyvaem shablon k nachalu stroki shablon$ - privyazyvaem shablon k koncu stroki [simvoly] - lyuboj odin simvol iz teh, chto stoyat v skobkah Vyvesti vseh priveligirovannyh pol'zovatelej: egrep ':0:0:' /etc/passwd Vyvesti vseh nepriveligirovannyh pol'zovatelej: egrep -v ':0:0:' /etc/passwd Vyvesti vseh pol'zovatelej, imena kotoryh nachinayutsya s bukv a,b,e,d cat /etc/passwd | grep "^[abed].*" Komanda find. find rekursivno obhodit ukazannye katalogi i fajly, proveryaet dlya nih vypolnenie ukazannyh uslovij i mozhet vdobavok vypol- nyat' s najdennymi fajlami ukazannye dejstviya. Naprimer, samoe prostoe dejstvie - raspechatat' imya fajla. find fajl [ ... ] klyuchi/usloviya/dejstviya Klyuchi-usloviya komandy find: -name "*.c" - prostoe imya podhodit pod shablon *.c -type f - brat' tol'ko obyknovennye fajly -type d - brat' tol'ko katalogi -size +500 - fajly razmerom BOLXSHE 500*512 bajt -mtime -3 - data modifikacii MENXSHE 3-h dnej -newer filename - data modifikacii nashego fajla MENXSHE, chem u zadannogo fajla filename VNIMANIE: Komanda find ispol'zuet standartnye SHELL'ovskie shablony. Komanda grep ispol'zuet shablony drugogo formata, nazyvaemye regulyarnymi vyrazheniyami. Klyuchi-dejstviya komandy find -print - prosto raspechatat' marshrutnoe imya fajla -exec komanda nad fajlom {} \; Primer. Napechatat' imena vseh obyknovennyh Si-shnyh fajlov, izmenivshihsya za poslednie 4 dnya v tekushchem kataloge i ego podkatalogah. find . -type f -mtime -4 -print Unichtozhit' vse fajly s okonchaniyami *.bu, *%, kotorye ne menya- lis' bol'she mesyaca. find / \( -name "*.bu" -o -name "*%" \) -type f \ -atime +30 -exec rm {} \; zapis' "rm {} \;" - oboznachaet komandu Unix, kotoraya budet vy- polnyat'sya dlya vseh takih najdennyh fajlov. Vmesto znachka "{}" budet podstavlyat'sya kazhdyj raz imya najdennogo fajla. Estestven- no, chto takim obrazom my ih vse i unichtozhim. . &dDArhivirovanie. Kopirovanie fajlov na strimmer&d@ V Unix dlya etogo mozhno pol'zovat'sya dvumya utilitami: tar poproshche v ispol'zovanii, no ne vse umeet cpio bolee gibkaya, chem tar, i poslozhnee. &dDKomanda tar (Tape Archiver)&d@. Prednaznachen dlya sozdaniya arhivov na lente i v fajlah. Klyuchi: "-c" Create, "-x" eXtract, "-a" Append, "-t" oglavlenie tar -cvf arhiw.tar fajl1 fajl2 katalog3 ... - sozdat' arhiv tar -tvf /dev/rmt/ctape vyvesti oglavlenie lenty tar -xvf arhiw.tar katalog3/fajl4 izvlech' iz arhiva fajl tar -xvf /dev/rmt/ctape arhiv lezhit na magnitnoj lente izvlech' s lenty vse fajly tar -avf arhiw.tar fajl5 dobavit' fajl k arhivu Klyuchi: "v" Vyvodit' spisok fajlov v dlinnom formate (Verbose) "f" Ukazyvaet na imya fajla &dDKomanda CPIO. (Copy In/Out)&d@. Komanda cpio -o beret s sistemnogo vvoda spisok imen i skleivaet eti fajly vmeste v odin arhiv, vytalkivaya ego na svoj sistemnyj vyvod. Sbrosit' na lentu fajly po spisku: -o - (output) sozdavat' arhiv. -H odc - Zapisyvat' v "sovmestimom formate" (chtoby ar- hiv mozhno bylo schitat' na Besta ili Sun) -c - Zapisyvat' v "prestarelom" sovmestimom formate cat spisok | cpio -ovB -H odc > /dev/rmt/ctape1 find katalog -print | cpio -ovc > arhiwnyj-fajl.cpio Komanda cpio -i chitaet s sistemnogo vvoda cpio-arhiv i izvleka- et iz nego fajly # Prosmotret' soderzhanie strimmera. cpio -itB < /dev/rmt/ctape # Izvlech' fajly so strimmera. cpio -idmvB ["shablon" ...] < /dev/rmt/ctape -B Razmer bloka 5120 bajt - strimmernyj format. -d Sozdavat' katalogi v sluchae neobhodimosti. -v Vyvesti spisok imen obrabotannyh fajlov. -m Sohranyat' prezhnee vremya poslednej modifikacii. -f Brat' vse fajly, krome ukazannogo shablonom. -u Bezuslovno zamenyat' sushchestvuyushchij fajl arhivnym. -l Gde mozhno, ne kopirovat', a delat' ssylki. &dDArhivaciya so szhatiem&d@. Arhivatory tar i cpio, v otlichie ot DOS-ovskih arhivatorov, ne zanimayutsya kompressiej. CHtoby poluchit' szhatyj arhiv, nuzhno vos- pol'zovat'sya specializirovannoj komandoj compress ili gzip. Komanda compress chitaet svoj sistemnyj vvod, a na svoj sistem- nyj vyhod podaet "prozhatye" dannye. Komanda zcat ("szhatyj cat":-) chitaet s sistemnogo vhoda "pozha- tyj" fajl, a na vyhod podaet "razzhatye" dannye. Sozdat' szhatyj tar-arhiv: tar -cvf - emacs-19.28 | compress > emacs-19.28.tar.Z Prochitat' oglavlenie szhatogo tar-arhiva: zcat < emacs-19.28.tar.Z | tar -tvf - Obratite vnimanie na klyuch minus "-" na tom meste, gde v tar nuzhno ukazyvat' imya fajla s arhivom. On oznachaet "brat' dannye so standartnogo vhoda" (ili vyvodit' arhiv na standartnyj vy- hod). GNU Zip - dostatochno izvestnyj upakovshchik, imeet stepen' szhatiya bolee vysokuyu, chem u compress, pochti kak u arj ili pkzip. Soz- dat' szhatyj cpio arhiv, ispol'zuya "kompressor" gzip. find . -print | cpio -ovcaB | gzip > arhiw.gz Izvlech' fajly iz szhatogo cpio-arhiva gunzip < arhiw.gz | cpio -idmv &dD mt - upravlenie magnitnoj lentoj &d@ Specializirovannaya programma dlya raboty s magnitnymi lentami. V chastnosti, s ee pomoshch'yu mozhno dopisyvat' fajly na lentu odin za drugim. CHtoby uznat', chto ona mozhet delat', naberite: man mt V SCO Unix programma upravleniya lentoj nazyvaetsya "tape" &dDDrugie utility arhivacii&d@ V zavisimosti ot versii Unix mogut sushchestvovat' i drugie programmy dlya bekapirovaniya i sozdaniya arhivov. backup/restore dump fbackup/frestore (HP/UX) pax . . . . &dDNachal'naya zagruzka operacionnoj sistemy&d@ &dD * Boot-procedura * &d@ Boot, bootstrapping - slova, oboznachayushchie sejchas "Zagruzit'/pnut', process nachal'noj zagruzki", na samom dele proizoshli iz anglijskoj frazy "Pull itself up by its own boot straps" (Podnyat' sebya za shnurki sobstvennyh botinok) Nachinaetsya vse s Boot-prom'a - nebol'shoj programmy, kotoraya hranitsya v nestiraemoj pamyati komp'yutera i nachinaet vypolnyat'sya srazu posle vklyucheniya. Estestvenno, boot-prom umeet delat' mnogoe: formatirovat' diski, installirovat' operacionnuyu sistemu, zapuskat' testy hardwa