2. gyakorlatok

Környezeti változók

  • A shell változói, értéket tudunk bennük tárolni
  • Alfanumerikus azonosító és '_' jel, de számmal nem kezdődhet
  • Nem típusosak, nem kell őket deklarálni
  • Az első használatkor automatikusan létrejön
  • Vannak előre definiáltak és mi is létrehozhatunk
  • Definiálás: NEV="Kis Pisti" vagy X=20
  • Érték kiolvasása: a változó neve elé $-jelet írunk $NEV, $X ${valtozo_nev}
  • echo parancs
  • Ha definiálunk egy változót, az az adott shell-re lokális lesz
  • Globálissá az export utasítással tehetjük pl: export X="Hello" vagy export NEV
  • Az előre definiált változók globálisak, DE ha megváltoztatjuk vmelyiket (nem mindegyiket lehet), akkor a shell amiben dolgozunk létrehoz róla egy másolatot és csak az változik! (Később visszatérünk rá)
  • set (összes kv listája)
  • env (összes exportált kv listája)
  • Változó megszűntetése: unset (pl. unset X)
  • Csak olvasható: readonly (readonly NEV)
  • ${KV:$i:1} (az EA emlékeztetőben hibásan szerepel!!)
  • ${#KV}

Előre definiált környezeti változók

  • PATH (később)
  • HOME
  • LOGNAME / USER
  • HOSTNAME
  • PWD
  • OLDPWD
  • GROUPS (csak azt írja ki amelyik aktív (ID-t ír ki)) Az összes csoport kiírása: groups parancs
  • RANDOM
  • PS1, PS2, PS3, PS4
  • SHELL
  • van még egy csomó... (help variables)

Alias-ok

  • Álnevek definiálása
  • alias dir='ls -l'
  • alias
  • unalias dir
  • unalias -a
  • pl. .bashrc-ben szoktak alias-okat definiálni

Fájlrendszer

  • "On a UNIX system, everything is a file; if something is not a file, it is a process."
  • Nincs különbség file és könyvtár között
  • Input/output eszközök, sőt általában minden eszközt fileként kezel a rendszer és kezelhetünk mi is!
  • inode szám (Minden partíciónak saját inode számai vannak -> két filenak lehet ua az inode-ja ha két különböző partíción vannak)
  • Faszerkezetű file struktúra, mint Win alatt, de nincsenek az ott megszokott betűjelekkel ellátott partíciók
  • Mégse igazi fa -> linkek (később)
  • mountolás
  • /etc/fstab
  • Milyen file típusokat különbözetetünk meg -> ls -l parancs
  • df parancs
    • partíciókról kérhetünk információkat
    • disk full / disk free ??
    • "-h" (human-readable)
  • du parancs
    • az egyes fileok mennyi helyet foglalnak
    • "-h" (human-readable)
    • "-s" csak az összesítést írja ki
  • cd /
    ls
    Néhány szó az itt látottakról
  • Filenevek (255? karakter, nincs kiterjesztés, tetsz. számú "." karakter (REJTETT FILEOK), space is lehet (később))

Az ls parancs avagy az állatorvosi ló

  • ls
  • ls /etc
  • ls ./public/public_html
  • ls zh.zip
  • ls -a
  • ls -l
		spala@pandora:~$ ls -l 
		összesen 3356
		drwxr-xr-x  2 spala progterv      70 2005-11-14 23:10 bin
		-rw-------  1 spala progterv     310 2005-12-24 12:45 dead.letter
		-rw-------  1 spala progterv     506 2005-11-14 22:50 INBOX.saved-messages
		-rw-------  1 spala progterv 2866604 2006-02-06 23:58 INBOX.sent-mail
		drwx------  2 spala progterv      93 2005-11-23 19:23 mail
		lrwxrwxrwx  1 spala mail          30 2005-08-25 16:17 mbox -> /h/s/spala/mail/saved-messages
		
mező jelentés
8. mező név (volt) (dirname, basename)
6-7. mező mtime (mtime - atime)
5. mező méret
4. mező csoport
3. mező tulajdonos (id parancs)
2. mező hard linkek száma
1. mező jogosultság+típus

Csoportok

  • newgrp [gname] (csoportjain között válthatunk, ha nem adjuk meg a 'gname'-t, akkor a bejelentkezésit állítja be)
  • chgrp gname fname (egy file csoportját tudjum megváltoztatni, csak saját filet, csak a saját csoportjaink között)
  • chgrp -R gname dirname

Tulajdonos

  • chown user[:group] fname
  • chown user: fname
  • chown :group fname <=> chgrp

Típus

  • '-' (reg.file)
  • 'd' (directory)
  • 'l' (softlink)
  • 'b' (block dev.)
  • 'c' (char. dev)
  • 's' (socket)

Jogosultságok

  • 3x3 mező (user,group,other)
  • rwx
JogFileKönyvtárÉrték
rolvasáslistázás4
wírás, törlésúj file létreh.2
xvégrehajtásbelépés1

Kapcsolók

  • "-i" (inode)
  • "-g" (nincs tulajdonos, csak csoport)
  • "-o" (nincs csoport, csak tulajdonos)
  • "-r" (fordított sorrend)
  • "-L" (nem mutatja a linkeket)
  • "-s" (méret blokkokban)
  • "-S" (méret szerint rendezve)
  • "-R" (rekurzív lista, kilistázza az alkönyvtárak tartalmát is teljes mélyeségben)
  • "-d" (a könyvtárbejegyzést írja ki a könyvtár tartalma helyett. pl: ls -ld /etc)
  • "-p" (file type indicator)
    • nothing - reg. file
    • / - directory
    • @ - link
    • * - futtatható
  • "-1" (1 sor - 1 file)

Gyakorló feladatok

  • Hozz létre TESZT néven egy körny. változót, az értéke legyen "Hello Világ!"
  • Ellenőrizd, hogy valóban helyes értéket tartalmaz-e
  • Tedd írásvédetté, majd próbálj neki új értéket adni! Mi történik, ha most kiiratod az értékét?
  • Próbáld megszűntetni, így írásvédetten, majd próbáld kiirani! Mi történik?
  • Hogyan lehet az ilyen változót megszűntetni? (*)
  • Mit tudsz mondani annak a gépnek a diszkjeiről, amin épp dolgozol?
  • Ha nem elérési útvonallal akarsz futattani egy parancsot, milyen könyvtárakban keresi a rendszer azon a gépen, ahol dolgozol?
  • Ha a PATH kv nem tartalmazza az aktuális könyvtárat (.), akkor add hozzá
  • Hogyan lehet a fenti módosítást "véglegesíteni", úgy hogy ha legközelebb bejelentkezel ne kelljen újra megcsinálni a fenti módosítást?
  • Kérj egy részletes listát a saját home könyvtáradról?
  • Hogyan tennéd meg ugyanezt, ha nem a home könyvtáradban vagy, hanem pl. a /etc könyvtár alatt?
  • Ki a tulajdonosa a chown programnak?
  • Milyen jogod van a passwd programhoz? (*)