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
(drugi); X
je +
ili -
; dozvola je r
(čitanje), w
(pisanje), x
(izvršavanje). Evo čestih primjera korištenja chmoda:
$ chmod +x datoteka
ovo postavlja dozvolu za izvršavanje datoteke.
$ chmod go-rw datoteka
ovo oduzima dozvole za čitanje i pisanje svima osim vlasniku.
$ chmod ugo+rwx datoteka
ovo svima daje dozvole za čitanje, pisanje i izvršavanje.
$ chmod +s datoteka
ovime 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 DOS naredbe; na desnoj Linux pandani.
ATTRIB
nul
/dev/null
prn, lpt1
/dev/lp0
ili /dev/lp1
; lpr
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";
< > >>
, 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;
mv *.xxx *.yyy
neće
raditi. Možete pokušati ovom jednostavnom skriptom; pogledajte dio
Skripte u ljusci: .BAT datoteke na steroidima za
detalje.
#!/bin/sh # ren: preimenuje više datoteka po nekoliko pravila if [ $# -lt 3 ] ; then echo "korištenje: ren <uzorak> <zamjena> <datoteke...>" exit 1 fi STARO=$1 ; NOVO=$2 ; shift ; shift for datoteka in $* do novo=`echo ${datoteka} | sed s/${STARO}/${NOVO}/g` mv ${datoteka} $novo done
ren "htm$" "html *htm
. Ne
zaboravite $
.
cp -i
i mv -i
.
Kako bi pokrenuli program, napišite njegovo ime kao i pod DOS-om. Ako je
direktorij (dio
Korištenje direktorija) u kojem
je program smješten uključen u PATH, (dio
Inicijalizacijske datoteke sustava) program će se pokrenuti. Iznimka: za
razliku od DOS-a, pod Linuxom program u trenutnom direktoriju neće se
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
- <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 poslije).
&
) na kraju naredbe:
$ imeprograma [-prekidači] [parametri] [< ulaz] [> izlaz] &
[1] 123
ljuska procese označava brojem posla ([1]
; vidi dolje) i PID-om
(Process Identification -- identifikacijski broj procesa; u našem
primjeru 123).
ps -ax
. Ovo ć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 DOS-u! I probajte na Windowsima, samo da vidite razliku u brzini (naravno, ako se ne sruše).
Kako bi pokrenuli program na udaljenom računalu imena
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 bi s
moja.linux.kanta
pokrenuli X program koji se nalazi na
udaljeno.računalo.edu
, učinite slijedeće:
$ xhost +udaljeno.računalo.edu
$ telnet udaljeno.računalo.edu
udaljeno:$ DISPLAY=moja.linux.kanta:0.0
udaljeno:$ imeprograma &
(Umjesto DISPLAY...
možda ćete 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.