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
chmod
COPY
cp
DEL
rm
MOVE
mv
REN
mv
TYPE
more
, less
, cat
nul
prn
, lpt1
Operatori 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.