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/nullprn, 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.