DOS datoteke i direktoriji imaju ove atribute: A (arhiviran), H (skriven), R (samo za čitanje) i S (sustav). Samo H i R imaju smisla pod Linuxom: skrivene datoteke počinju točkom, a za R atribut čitajte dalje.
Pod Unixom datoteka ima dozvole i vlasnika, koji pripada grupi. Pogledajte ovo:
$ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls*
Prvo polje sadrži dozvole za datoteku /bin/ls, koja pripada
rootu, grupi bin. Bez obzira na to, zapamtite što -rwxr-xr-x znači, s
lijeva na desno:
- je tip datoteke (-: obična, d: direktorij, l: veza,
itd.); rwx su dozvole za vlasnika datoteke (čitanje, pisanje,
izvršavanje); r-x su dozvole za grupu vlasnika datoteke (čitanje,
izvršavanje) (neću objašnjavati grupe, preživjet ćete bez toga dok ste
početnik ;-); r-x su dozvole za sve ostale korisnike (čitanje,
izvršavanje).
I direktorij /bin ima dozvole: pogledajte dio Dozvole direktorija za detalje. Zato ne možete obrisati datoteku /bin/ls osim ako ste root: za to nemate dozvole. Naredba za mijenjanje dozvola datoteka je:
$ chmod <tkoXdozvola> <datoteka>
gdje je tko u (korisnik, tj. vlasnik), g (grupa), o
(ostali); X je + ili -; dozvola je r (čitanje), w
(pisanje), x (izvršavanje). Evo čestih primjera korištenja chmoda:
$ chmod +x datotekaTo postavlja dozvolu za izvršavanje datoteke.
$ chmod go-rw datotekaTo oduzima dozvole za čitanje i pisanje svima osim vlasniku.
$ chmod ugo+rwx datotekaTo svima daje dozvole za čitanje, pisanje i izvršavanje.
$ chmod +s datotekaTime dobivamo takozvanu setuid ili suid datoteku -- svatko ju može izvršiti s privilegijama njenog vlasnika. Najčešće su root suid datoteke; to obično važne datoteke sustava, kao što je X server.
Kraći način za pisanje dozvola je brojkama: rwxr-xr-x možemo izraziti
kao 755 (svako slovo odgovara bitu: --- je 0, --x je 1, -w- je
2, -wx je 3). Izgleda teško, ali shvatit ćete uz malo prakse.
root kao nadkorisnik može mijenjati dozvole svake datoteke. RMP.
Na lijevoj strani su DOS naredbe; na desnoj Linux pandani.
ATTRIB
chmodCOPYcpDELrmMOVEmvRENmvTYPEmore, less, catnulprn, lpt1Operatori za redirekciju i piping: < > >> |
Metaznakovi: * ?
DOS Linux
-------------------------------------- ------------------------------
C:\GUIDO>ATTRIB +R DATOTEKA.TXT $ chmod 400 datoteka.txt
C:\GUIDO>COPY JURICA.TXT JURICA.DOC $ cp jurica.txt jurica.doc
C:\GUIDO>COPY *.* SVE $ cat * > sve
C:\GUIDO>COPY FRAKTALI.DOC PRN $ lpr fraktali.doc
C:\GUIDO>DEL PRIV $ rm priv
C:\GUIDO>DEL *.BAK $ rm *~
C:\GUIDO>MOVE DOKUMENT.TXT TMP\ $ mv dokument.txt tmp/
C:\GUIDO>REN DOKUMENT.TXT DOKUMENT.ASC $ mv dokument.txt dokument.asc
C:\GUIDO>PRINT PISMO.TXT $ lpr pismo.txt
C:\GUIDO>TYPE PISMO.TXT $ more pismo.txt
C:\GUIDO>TYPE PISMO.TXT $ less pismo.txt
C:\GUIDO>TYPE PISMO.TXT > NUL $ cat pismo.txt > /dev/null
nema $ more *.txt *.asc
nema $ cat dio*.txt | less
Napomene:
* je pametniji pod Linuxom: * odgovara svim datotekama osim
skrivenima; .* odgovara svim skrivenim datotekama (ali i trenutnom
direktoriju . i roditeljskom direktoriju ..: pazite na to!);
*.* odgovara samo datotekama s . u sredini ili na kraju; p*r
odgovara i ``petar'' i ``papir''; *c* odgovara i
``crv'' i ``svizac''.
more, pritisnite razmak za slijedeću stranicu, <q>
za izlaz. less je intuitivniji i dopušta korištenje strelica.
UNDELETE ne postoji, pa pažljivo razmislite prije brisanja datoteka.
< > >>, Linux ima 2> za preusmjeravanje
poruka o greškama (stderr); 2>&1 preusmjerava stderr na
stdout, a 1>&2 stdout na stderr.
[]. Korištenje: [abc]* odgovara
datotekama koje počinju s a, b i c; *[I-N1-3] odgovara
datotekama koje završavaju s I, J, K, L, M, N,
1, 2 i 3.
lpr <datoteka> ispisuje datoteku u pozadini. Za provjeru stanja
reda za ispis služi lpq; za brisanje datoteke iz reda za ispis
lprm.
RENAME sličan DOS-ovom; to jest, mv *.xxx *.yyy neće
raditi. REN-olika naredba se može naći na
ftp://sunsite.unc.edu/pub/Linux/utils/file.
cp -i i mv -i.
Kako biste pokrenuli program, napišite njegovo ime kao i pod DOS-om. Ako je
direktorij (poglavlje
Korištenje direktorija)
u kojem je program smješten uključen u $PATH (poglavlje
Inicijalizacijske datoteke sustava),
program će se pokrenuti. Iznimka: za razliku od DOS-a, pod Linuxom se
program u trenutnom direktoriju neće pokrenuti osim ako je taj direktorij u
$PATH-u. Rješenje: ako je prog vaš program, napišite
./prog.
Ovako izgleda tipična naredba:
$ naredba [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< ulaz] [> izlaz]gdje su
-s1, ..., -sn programski prekidači; par1,
..., parn programski parametri. U jednom redu možete pokrenuti više
programa:
$ naredba1 ; naredba2 ; ... ; naredban
To je sve o pokretanju programa, ali lako je nastaviti. Jedan od glavnih razloga za korištenje Linuxa je višezadaćnost. Više programa (od sada, procesa) radi u isto vrijeme. Možete ih pokretati u pozadini i nastaviti rad bez prekida. Linux vam dopušta i nekoliko sesija: kao da radite na više računala odjednom!
su lt;login>. Na primjer: su - root. Ovo je korisno kada
obavljate zadatak koji može obaviti samo root.
exit. Upozorit će vas ako ima zaustavljenih
poslova (čut ćete o tome kasnije).
&) na kraju
naredbe:
$ imeprograma [-prekidači] [parametri] [< ulaz] [> izlaz] & [1] 123Ljuska procese označava brojem posla (
[1]; vidi dolje) i
PID-om (Process Identification -- identifikacijski broj procesa; u
našem primjeru 123).
ps ax. To će ispisati popis procesa koji
trenutno rade.
kill <PID>.
Možda ćete ga morati ubiti ako ne znate kako pravilno izaći... Ako niste
root, ne možete ubijati tuđe procese. Ponekad će proces ubiti jedino
kill -SIGKILL <PID>.
I ljuska vam omogućava zaustavljanje ili privremeno suspendiranje procesa,
slanje procesa u pozadinu i u prednji plan. U tom kontekstu procese nazivamo
poslovima.
jobs. Tu su označeni brojem posla, a ne
PID-om.
bg <%posao> (postaje posao).
fg <%posao>. Za
slanje posljednjeg procesa poslatog u pozadinu u prednji plan jednostavno
napišite fg.
kill <%posao>.
<posao> može biti 1, 2, 3...Korištenjem ovih naredbi možete formatirati disketu, arhivirati hrpu datoteka, kompajlirati program i otpakirati arhivu skoro istovremeno, i još uvijek imati prompt pred sobom. Probajte to na Windowsima, samo da vidite razliku u brzini (naravno, ako se ne sruše).
Kako biste pokrenuli program na udaljenom računalu čije je ime
udaljeno.računalo.edu, napišite:
$ telnet udaljeno.računalo.edu
Nakon što se ulogirate, pokrenite svoj omiljeni program. Naravno, na tom računalu morate imati korisnički račun.
Ako imate X11, čak možete na udaljenom računalu pokrenuti X aplikaciju,
prikazanu na vašem X prikazu. Neka je udaljeno.računalo.edu udaljeno X
računalo i moja.linux.kanta vaš Linux sustav. Kako biste s
moja.linux.kanta pokrenuli X program koji se nalazi na
udaljeno.računalo.edu, učinite slijedeće:
xterm ili sličan emulator terminala, a zatim napišite:
$ xhost +udaljeno.računalo.edu $ telnet udaljeno.računalo.edu
udaljeno:$ DISPLAY=moja.linux.kanta:0.0 udaljeno:$ imeprograma &(Umjesto
DISPLAY... ćete možda morati napisati: setenv DISPLAY
moja.linux.kanta:0.0. Ovisi o ljusci.)Eto! Sada će se imeprograma pokrenuti na udaljeno.računalo.edu i
prikazati na vašem stroju. No nemojte ovo pokušavati preko modema --
presporo je da bi se moglo koristiti. Štoviše, ovo je gruba i nesigurna
metoda: pročitajte ``X na daljinu mini-KAKO'' na
http://dokumentacija.linux.hr/X-na-daljinu.html.