Jelen leírás Debian GNU/Linux alatt tesztelt és használható parancsokat tartalmaz, 
a teljesség igénye nélkül. A dokumentum tartalmát csak saját felelősségedre használd!
Szabadon terjeszthető a forrás és szerző megjelölésével.
Jó tanulást!


Utolsó frissítés.: 2016-06-30                                   letix
Changelog


Linux parancsok, kezdőknek


Az első lépések
Könyvtárszerkezet
Állománykezelés
Rendszeradminisztráció
Folyamatok
Időzített parancsfeldolgozás
Kernel, modulok,fordítás
Csomagkezelés
Hálózat
Bash programozás
     Érdekes/hasznos bash scriptek -experimental-
Egyéb programok, leírások
     mdadm - RAID alapok
     RAID1 készítése élő rendszeren
     Adatmentés sw. RAID1-et alkotó HDD-ről
     Local repository készítése apt-mirror segítségével
     Távoli mappák felcsatolása SSHFS használatával
Hasznos linkek



Az első lépések       top

Egy Debian GNU/Linux alaprendszer telepítésének menete részletesen, képekkel illusztrálva az alábbi linkeken található.:
Debian GNU/Linux 4.0 rendszer telepítése - Expert módban
Debian GNU/Linux 5.0 rendszer telepítése - GUI módban



A telepítés és sikeres belépés után ajánlatos parancsok.:

dpkg-reconfigure debconf	
	# A lehetőségek közül a low-t "alacsonyt" választva a későbbi programok repository-ból történő 
	# telepítésekor minden apró részletre, beállításra rákérdez a rendszer. Ajánlatos.
apt-get update
apt-get upgrade
	# A rendszer frissítése. (a tárolók -repository- az /etc/apt/sources.list file-ban vannak megadva.)

Sok keresgéléstől kímélheted meg magad, ha a következő parancsokat elsajátítod.:


man parancs
	# A parancs manual oldalait nyitja meg, rövid, tömör, célratörő leírás

man -L en parancs
	# parancs manual oldalainak angol nyelvű megjelenítése

apropos szó
	# Minden olyan parancsot megad, mely manual oldalaiban szerepel a "szó"

man -k szó
	# Az apropos program kimenete

parancs --help
	# Információ a "parancs" használatáról

info parancs
	# Információ a "parancs" használatáról

whatis parancs
	# Egysoros a parancsról.
	
whereis parancs
	# Hol is van a parancs?

which parancs 
	# A program futtatható állományának elérési útvonalát adja meg (általában /usr/bin)

file:///usr/share/doc
	# böngészőbe írva, a legtöbb telepített program leírása megtalálható,
	# általában html formátumban is.

Fontos! Nem minden (a leírásban felsorolt) parancs tartozéka egy alaprendszernek, előfordulhat hogy telepítened kell.



Könyvtárszerkezet       top

/	# A hierarchikus könyvtárfa kiindulópontja (gyökér könyvtár)
/boot	# A rendszer indításához szükséges állományok helye (grub, vmlinuz, stb) 
/bin	# A futtatható parancsok könyvtára -binaries
/sbin	# A rendszergazda parancsai -superuser bin
/lib	# Az induláshoz szükséges osztott rendszerkönyvtárak -libraries
	   Továbbá tartalmazza a rendszerhez csatolható modulokat, meghajtóprogramokat
/dev	# A rendszerhez csatlakozott, csatolható különleges állományok -devices
/etc	# Beállítófájlok, helyi indító parancsok, jelszavak, hálózati-beállítók, etc. helye.
/home	# Minden felhasználó saját könyvtára itt foglal helyet. (Otthon, édes otthon)
/mnt	# A felcsatolt (mountolt) perifériák könyvtára. -mount
/proc	# Itt látható, ahogy a rendszer "él és lélegzik". (szellem a gépben) -process information 
	   Érdemes tüzetesebben átnézni, hiszen érdekes dolgokat találhatunk itt. 
	   pl.: /proc/cpuinfo fájl kiíratásával információt kaphatsz processzorodról.
/root 	# A rendszer gazdájának könyvtára.
/tmp	# Ideiglenes adatok tárolására használt könyvtár. -temp
/usr	# Alkalmazások, rendszereszközök tömkelege, a legforgalmasabb könytár. (pl X Window)
/var	# Változó adatokat tartalmazó állományok könyvtára. /pl.: nyomtatási munkák, levelek, etc)
	   /var/log : napló fájlok, különös jelentőséggel bírnak a rendszer biztonságának szempontjából 



Állománykezelés       top


pwd
	# Az éppen aktuális könyvtár munkakönyvtár kiíratása

cd 
	# Könyvtár váltás parancs
	cd : az aktuális felhasználó /home könyvtárába való belépéshez 
	cd .. : az aktuális könyvtárhoz képest egy szinttel feljebb lépés a könyvtár fában.

mkdir	
	# Könyvtár létrehozása (make directory)
	-p /home/user/1/2/3 :  A teljes struktúra létrehozása, almappákkal együtt.

rmdir
	# Könyvtár törlés

rm
	# Állományok eltávolítása
	-d  : könyvtárat
	-i  : rákérdez a törlés előtt (Ajánlott!)
	-rf : Könyvtárstruktúrát töröl (akkor is, ha nem üres)

ls
	# A könyvtárstruktúrát jelenít meg
	ls -lt     : méret szerint sorrendben
	ls -ls     : utolsó módosítás szerint sorrendben
	ls ??????? : minden 7 karakteres állományt jelenít meg
	ls -a      : a rejtett fájlokat is kiírja
	ls -r ?    : fordított sorrendben írja ki. pl.: -nr : ABC fordított sorrendjében
	ls [aes]?  : azokat a 3 betűs fájlokat, melyek középső betűje a,e,s közül bármelyik
	ls [nm]*   :  azokat a fájlokat melyek n,m betűvel kezdődnek
	ls *c      : amelyek c-betűre végződnek
	ls [^s]*   : amely fájlok nem s-el kezdődnek
	ls I szó   : kilistázza a könyvtár tartalmát, de a szó-t kihagyja


tree
	# Könyvtárstruktúrát írja ki	
	-d : csak a mappákat adja meg.
	-f : teljes path-al írja ki a file-ok elérési útvonalát

file sajt
	# megvizsgálja a sajt fájl típusát
	-f filelista : Egy létező filelista állományban felsorolt file-okat vizsgálja meg
	-L : Követi a szimbólikus link kötést (nem a linket, hanem az arra mutató file-t vizsgálja)
	--mime file: A file karakterkódolását mutatja meg.

cp 
	# Fájl, könyvtár másolásra használható program
	file1 file2 	     : file1 állományból készít file2 nevű másolatot file1 megtartásával
	-R /honnan/mit /hova : rekurzívan mindent másol a /honnan/mit-ből a /hova mappába

cat file
	# Fájl tartalmát írja ki.
	> file  : várja a bemenetet, amely a "file" tartalma lesz. Ctrl + D kombinációval menthető.
	-n filel : beszámozza a filel sorait
	??.sh   : Minden .sh kiterjesztésű, 2 betűs file tartalmát kiírja a képernyőre. 
	/dev/cdrom > /eleresi/utvonal/cd.iso : A CD tartalmának ISO-ban örténő mentése.
	/etc/passwd |grep "/home" | cut -d: -f1 : A rendszerbe felvett felhasználók kiíratása

	cat < bemenet.txt > kimenet.txt
	# a cat beolvassa a bemenet.txt tartalmát és a kimenet.txt-be irányítja.
	
	cat file.txt 1> file2.txt 2>&1
	# A hibacsatorna is a kimenetre keverhető, azaz a file1.txt tartalma ÉS a lehetséges hibák 
	# is bekerülnek a file2.txt-be. A hibacsatornáról a bash programozás részben bővebben.


echo szoveg
	# Kiírja a képernyőre a szoveg-et
	echo szoveg > file 	: a szoveg-et file-ba írja
	echo $HOME 		: $HOME nevű változó értékét adja meg, ami az aktuális user home-ja. pl /home/letix


touch file
	# létrehoz egy file nevű üres állományt
	-t MMDDHHmm fájl    : A fájl időbélyegeinek dátumát változtatja meg. MM-Hónap DD-Nap HH-Óra mm-Perc
	-r file file2       : file időbélyegei alapján állítja be file2 időbélyegeit.
	-a -t 03091315 file : a file létrehozási dátumát állítja Március 9., 13:15-re.
	-m -t 03091315 file : a file módosítási dátumát állítja Március 9., 13:15-re.	

du
	# Az aktuális könyvtár fájljainak méretét adja meg
	-H	      : Olvashatóbb formátumban írja ki a méreteket (MByte, GByte, stb.)
	--si          : A -h helyett már ezt a kapcsolót ajánlatos használni.
	--max-depth=1 : 1 könyvtár mélységig vizsgál

df
	# Szabad terület számítása, partíciónként
	-H     : Olvashatóbb formátumban írja ki a méreteket (MByte, GByte, stb.)
	--si   : A -H helyett már ezt a kapcsolót ajánlatos használni.

find
	# Keresés

	find / -name "*.jpg" -print : az összes kép keresése a gyökérben, majd az eredmény kiírása
	find / -iname ... 	    : kis és nagybetű különbség nincs!
	find -perm 777 		    : minden 777-es joggal rendelkező állomány keresése
	find -perm 4000 	    : Az összes SUID joggal rendelkező állományt keresi
	find /home -size +1024      : 500kb-nál nagyobb állományok keresése a /home-ban
	find -type "kapcsoló"       : különböző típusú fájlokat keres
		-type l : szimbólikus link
		-type d : könyvtár
		-type f : fájl

	find /etc -empty -maxdepth 1 -printf "%p-%m\n"  
		# Az /etc könyvtárban lévő üres könyvtárakat írja ki, a jogosultságaival együtt.

	find /home -size +1024 \( -mtime +365 -o -atime +365 \) -ls -exec file{} \;
		# 512kb-nál nagyobb,maximum 365*24 órája módosított állományokat, valamint a file parancs kimenetét
		# -exec file{} \; jelenti, hogy az exec után levő parancsnak adja át az eredményt.

	find -iname *.avi -a -size +1000M -o -iname *.ISO -a -size +500M
		# Keresési feltételek.: avi kiterjesztésű ÉS 1000MB fölötti, VAGY ISO kiterjesztéső ÉS 500MB fölötti file-ok. 
		# (Kis-nagy betű nem számít a kiterjesztésben.)

	find . -name "*.txt" -print | xargs grep "tcp80"
		# a gyökérben olyan txt állományokat keres, melyek tartalmában szerepel a "tcp80" kifejezés

chmod
	# Linuxon a fájlokra, könyvtárakra vonatkozó jogok állíthatóak be ezen paranccsal
	-R : Rekurzívan változtatja meg a jogosultságokat.
	
	# DAC (háromszintű diszkrécionális maszk) szerinti beállítás.
	# r-read (olvasás), w-write (írás), x-executable (futtatás) jogot jelent
	#
	# Általános jogosultság lista felépítése: (ls -la paranccsal lekérdezhető)
	# tulajdonos (jele:U) | csoport felhasználó (jele:G) | mindenki más (jele:O)
	#         rwx         |            rwx               |          rwx
	#
	# A sor elején található "d" a directory, "-" a file jele.
	# Jogok nem csak szimbólikus jelekkel de számokkal is meghatározhatóak.
	#
	# Számokkal.: 4-read, 2-write, 1-executable jog, összeadva, külön U,G,O-nak
	# 
  	
	chmod 777 file : UGO-nak egyaránt minden jog. (4+2+1 4+2+1 4+2+1)
	chmod 751 file : U-nak minden, G-nek írási és futtatási, O-nak futtatási jog.
	
	# Betűkkel.: kinek+mit
	#
	
	chmod u+rwx file : Tulajdonosnak (U) r,w,x jog adása az adott file-ra.
	chmod g+rx file  : Csoport felhasználónak (G) r,x jog beáll.
	chmod a-rwx      : Mindenkitől (A-all) elveszünk minden jogot.

umask
	# A file és könyvtár jogok beállítása kapcsán érdemes megemlíteni az umask-ot.
	# Az umask meghatározza, hogy milyen jogosultságot kapjanak az újonnan létrehozott file-ok, mappák.
	# Értéke alapértelmezés szerint 022. 
	# Jelentése.: File-ok 644-et, Mappák 755 jogokat kapnak. 
	# File-ok esetén 666-ból, 
	# Mappák esetében pedig 777-ből kell levonni a 022-t, így kapjuk meg a jogokat.

chown	
	# Fájlok, könyvtárak tulajdonosának (létrehozójának változtatása)
	-R 		 : Rekurzívan változtatja meg a tulajdonos(oka)t
	-f 		 : Nem küld vissza hibaüzenetet a rendszer, ha valami nem sikerült
	--no-dereference : Szimbólikus linkeknél a link jogosultságainak beállítása
	--dereference    : Szimbólikus linkeknél a file (amire a link mutat) jogok változtathatóak meg.

chgrp
	# Fájlok tulajdonosi csoportjának megváltoztatása
	-R : Rekurzívan változtatja meg a csoportokat
	-f : Nem kapunk vissza hibaüzenetet, ha valami nem sikerült
	-c : csak azokat a file-okat írja ki, amelyeknek valóban megváltozott a csoportjuk

lsattr
	# Fájlok, könyvtárak attribútumát mutatja meg
	-R : Rekurzívan mutatja meg az attribútumokat
	-a : minden file-t kilistáz, beleértve a .-al kezdődőeket is

chattr +tulajdonság file
	# Fájlok, könyvtárak attribútumát változtatja
	#
	# Tulajdonságok.:
	A : Nem változtatja meg a fájlok utolsó módosításának dátumát. (rendszergyorsító hatás)
	a : Csak hozzáfűzni tudunk a fájlhoz
	c : Autómatikusan tömörítve kerül a lemezre, és kitömörítve kerül beolvasásra
	d : Ezekről az állományokról nem készül biztonsági másolat a dump parancs futtatásakor
	s : Paranoia mód. Törléskor azonnal megsemmisül minden bit-je.
	S : Minden változtatás azonnal lemezre íródik (sync hatás)
	u : A Fájl törlésekor az adat megmarad, később visszaállítható


cmp file1 file2
	# Összehasonlítja a file1 és file2 fájlok tartalmát

cut
	# Bement (stdin), vagy paraméterként megadott fájl minden sorának egy megadott
	# részét vágja ki
	-c2 fájl    : második mező értéke
	-c3,5 	    : harmadik, ötödik mező, sorrend nem számít
	-c-4,6-     : negyedik mezőig és a hatodiktól
	-d: -f1     : Kettősponttal elválasztott sorokban az első helyen lévő adatot adja vissza.
		
		echo ELSO:MASODIK:HARMADIK | cut -d: -f1
		ELSO
		

colrm 
	# Fájlból oszlopok távolíthatóak el
	1 5 file: adott bemeneti állomány első oszloptól az ötödikig töröl minden sorból	
			
		letix@microserver:~$ cat colrmtest
		1234567890
		2345678910
		3456789101
		letix@microserver:~$ cat colrmtest | colrm 1 5
		67890
		78910
		89101
		

diff -u file1 file2 > eredmeny
	# Összehasonlítja a fájlok tartalmát, a különbséget pedíg az eredmény-be írja

	–y -–left-column file1 file2  
	# file1 és file2 összehasonlítása, az eredményt két egymás melletti oszlopba írja,
	# de az egyezőségeket csak a bal oszlopban tűnteti fel.

tr
	# karakterek lecserélése, változtatása adott karaktersorban
	echo vegyes | tr a-z A-Z   : a vegyes szóban a kis betűket nagyra cseréli.
	echo egyesek | tr -d e     : az egyesek szóból kitörli az e betűket
	
	cat file.txt | tr -cs '[a-zA-Z0-9]' '[\n*]' > file2.txt 
	# ha a file.txt több szóból álló szöveget tartalmaz, a szavak mögötti szóközt újsor karakterre cseréli, 
	# azaz minden szó új sorba kerül egymás alá, a file2.txt-be irányítva
 
	cat file.txt | tr -s '\n' > file2.txt 
	# Ha a file.txt-ben több üres sor is van, az összes újsor karaktert összevonja, azaz üres sorokat töröl.


fgrep
	# Fájlokban, vagy stdin-ben keresek szöveget
	"abc" file.txt : Megkeresi az összes olyan sort a file.txt-ben, ami tartalmat "abc"-t

grep
	# Szövegrészleteket keres fájlokban, valamint a kimenetben. A kapcsolók után kell megadni a file-t.
	-i     : nem tesz különbséget kis és nagybetűk között
	-l     : nem az előfordulási sorokat, hanem csak a fájl neveket listázza
	-L     : azokat a fájl neveket adja meg, melyben nem szerepel a "minta".
	-v     : azokat a sorokat adja meg, amikben nem szerepel a keresett szó
	-e     : "-" -el kezdődő minta keresésekor hasznos kapcsoló. (nélküle érvénytelen kapcsoló hibát dob.)
	-x     : csak teljes sorokkal való illeszkedést vizsgál. 
	B.r    : azokat a sorokat adja meg, melyekben a "B" és az "r" között bármilyen karakter szerepel.
	[ha]   : a kimenetben találhatóak meg azok a találatok, melyekben szerepel "h" vagy "a" betű.
	1[5678]: azon sorok megadása, melyben szerepel 15,16,17,18 
	1[5-8] : azon sorok megadása, melyben szerepel 15,16,17,18 
	[^sajt]: minden sor megtalálható a kimenetben, kivéve amelyben szerepel a "sajt" kifejezés.
	^$     : Azokat a sorokat adja meg, melyek üresek.
	^h     : A sor elején található kis "h" betűre illeszkedik.

grep '^[^#;]' /etc/samba/smb.conf
	# smb.conf tartalmának kiíratása úgy, hogy a # ÉS ; jelekkel kezdődő sorokat nem írja ki.


	# szóközt grep szó" "szó2 -vel ábrázolunk

head
	# Szűrő eszköz. A fájl első 10 sorát írja ki
	-n 100 fájl     : A fájl első 100 sorát adja meg
	-n-7 fájl       : utolsó 7 sort már nem írja ki
	-n+4 fájl       : A fájl első 4 sorát írja ki. (megadható "-n 4"-el és "-n4"-el is. Az előjel mindig pozitív.)
	-c4 fájl1 fájl2 : mindkét fájl első 4 karakterét írja ki

tail
	# Szűrő eszköz. A fájl utolsó sorait írja ki.
	-n+2 fájl : A fájl tartalmát a második sortól mutatja meg

tail -n+3 fájl | head -n1
	vagy
head -n3 fájl | tail -n1
	# Egy fájl harmadik sorát így lehet kiíratni


paste
	# adatoszlopok vagy adatfájlok oszlopainak összemásolása egymás mellé tabulátorral
	# file1 tartalma: Peti
	# 		  Jeno
	#		  Anna
	# file2 tartalma: 1980
	# 		  1950
	#		  2007
	# file3 tartalma: December
	# 		  Februar
	#		  Julius

paste file[123]
	# file1,2,3 állományok oszlopainak osszemásolása
	# Kimenet:
		
		Peti    1980    December
		Jeno    1950    Februar
		Anna	2007	Julius

paste -d ':' file[123]
	# ugyanaz mint a fenti, de tabulátor helyett ":" az elválasztó.


sed
	# Stream editor, folyamatszerkesztő. A bemenetet a kimenetre másolja miközben megszerkeszti.
	echo "hablabda"  | sed 's/a/K/g' : kimenete.: hKblKbdK, azaz "a" betűket "K"-ra cseréli
	'/ *#/d; /^ *$/d' file 		 : a file-ból kiszűrjük a kommenteket, üres sorokat.
	

sort
	# Sorba rendezés
	-b fájl > kimenet : ABC sorrendbe rendezi a fájlt, az eredményt a kimenetbe írja.
	-r fájl : fordított sorrendben rendez
	-n fájl : a sor elején levő számok szerint rendez
	-u fájl : az azonos sorokat csak egyszer írja ki
	-k +2 fi: fi nevű 2 oszlopos file-ban a második oszlop alapján rendezi sorba

rev  (reverse lines)
	# adott állományban a karakterek sorrendjének megfordítása
	     	
	     	cat file4
		   ABCDEFGH
		   12345678
	     	rev file4
		   HGFEDCBA
		   87654321


nl  (number lines of files)

	# file-ok soronkénti beszámozása. 
	-n ln 	: sorszámozás balra zárt, nullák nélkül	
	-n rn	: sorszámozás jobbra zárt, nullák nélkül
	-n rz	: sorszámozás jobbra zárt, nullázva
	-w4	: rz kapcsolóval együtt a nullák számát lehet megadni
	-s:	: separator ":"

nl -n rz -w4 -s: file1
	     	0001:Peti
		0002:Jeno
		0003:Anna


uniq
	# Több sorból álló szövegben az ismétlődő sorokkal kezd valamit
	-c fájl : az egymás utáni azonos sorokból egyet hagy meg, és kiírja a sorok elején hogy hányszor 
		  ismétlődött az adott sor
	

wc fájl
	# sor, szó, karakter számítása
	-m fájl : a fájlban lévő karakterek száma
	-c fájl : a fájlban lévő bájtok száma
	-w fájl : a fájlban lévő szavak száma
	-l fájl : a fájlban lévő sorok száma


mc
	# Midnight Commander fájlkezelő

mcedit
	# Az mc szövegszerkesztője

update-alternatives --config editor
	# Alapértelmezett szövegszerkesztőnket a fenti paranccsal tudjuk módosítani (pl mcedit-re)

mkisofs 
	# Hasznos segédprogram ISO-k készítéséhez.
	# korábbi verziókban cdrtools csomag tartalmazza!
	-r -o cd.iso /cdrom/ : ISO készítése a CD lemezünkről
	
	mkisofs -J -V "Label" adat/ | sudo cdrecord dev=0,0,0 speed=32 -data -v -eject driveropts=burnfree -
		# adat mappa kiírása 32x-es sebességgel, Label nevű, verbose, az írás végén CD kiadással.
	cdrecord -scanbus
		# dev érték lekérdezése 

install
	# Fájlok másolása, attribútumok módosítása

less
	# Szűrőprogram fájlok adatainak megjelenítéséhez.

lsof
	# Nyitott fájlok kilistázása
	-p pid     : Folyamat azonosító szerinti szűrés
	| egrep ":port1|:port2" : A megadott portokat használó fájlokat listázza ki

lspci
	# Hardver információk
	-v  : bőbeszédű
	-vv : még bőbeszédűbb

lsusb
	# Usb eszközök kiíratása

lshw
	# Hardver információk, kicsit bővebben
	-X     : Grafikus felületű eredmény 
	-html  : HTML formátumban menthetjük a kimenetet
	-short : Az eszközök fa-szerű megjelenítése	

mv
	# Fájlokat könyvtárakat mozgat, vagy nevez át
	-i : A módosítások előtt rákérdez, hogy valóban akarjuk-e
	-U : Nem mozgatja az újabb (módosítás dátuma szerint) célfájlal rendelkező állományokat.	
	-f : force, a célfájlok törlése, kérdés nélkül
	
mkfs 
	# Fájlrendszer létrehozása
	-t filesystem eszköz [blokkméret]
	-t ext2 -V /dev/eszköz : ext2-es fájlrendszer létrehozása

updatedb
	# A PC-n található file-okról készít adatbázis, melyben az mlocate/locate parancsokkal könnyen és gyorsan lehet keresni.
	# 
	# /etc/updatedb.conf-ban meghatározható paraméterek:
	# --------------------------------------------------
	#
	# PRUNENAMES	: bizonyos kiterjesztésű állományokat ki lehet hagyni a vizsgálatból. pl: .svn
	# PRUNEPATHS 	: megadható, mely mappákban ne keressen. pl: /tmp
	# PRUNEFS 	: definiálható, mely fájlrendszereket hagyjon figyelmen kívül. pl: CIFS
	#
	# /var/lib/mlocate/mlocate.db 	:A default adatbázis elérési útvonala

  mlocate fájl
	# általánosan létrehozott updatedb adatbázisában (/var/lib/mlocate/mlocate.db) keres fájl-t

  updatedb -l 0 -o dbdir/dbname.db -U /mnt/server
	# /mnt/server felcsatolt fájlrendszer tartalmáról adatbázis készítése dbdir/dbname.db állományba
	# lokális meghajtókról nem készül bejegyzés, csak a server-ről!!

  mlocate -d dbdir/dbname.db macilaci
	# a fent létrehozott dbname.db-ben olyan állományokat keres, melyeknek a nevében szerepel macilaci



ln -s
	# Szimbolikus link létrehozása
	-s fájl1 fájl2 : fájl1 ről készít fájl2 nevű soft-link-et.


mkdir -t ext2 /dev/ram0 4096
mount /dev/ram0 ramdisk/
	# 4Mbyte os ramdisk-et hozunk létre, és felcsatoljuk.


mount 
	# Szimplán kiadva a rendszerbe felcsatolt eszközök listáját adja meg. (/etc/mtab file is)
	
	/dev/hda2 /mnt/usbhdd
		# hda2-es eszközt csatolja fel a usbhdd könyvtárba (létre kell elötte hozni!)
		# IDE csatolófelülető eszközöknél volt használatos a Hda
	
	-o noatime /dev/hdX
		# noatime attribútummal csatlakoztatja a lemezt. (I/0 művelet csökkentés!)
	
	/eleresi/ut/cdimage.iso /mnt/cdrom -o loop 
		# cdimage.iso felmountolása megtekintésre. (kell /mnt/cdrom mappa!)
	
	-t cifs -ro username=NEV,password=JELSZO //server/megosztas /mnt/hova   
		# CIFS fájlrendszert csatolunk read-only módban a server megosztásából, USER/JELSZO nevében.
	
	-t ntfs-3g /dev/sdb1 /mnt/ntfs
		# ntfs-3g csomag telepítését követően a /dev/sdb1 (NTFS fájlrendszerű) eszköz felcsatolása /mnt/ntfs-be.

	-t vfat /dev/sdc1 /mnt/usb
		# vfat rendszerű (általában a FAT/FAT32 pendrive-ok ilyenek) felcsatolása /mnt/usb-re

umount /dev/eszköz
	# Lecsatlakoztatás 

recode
	# file karakterkódolásának konvertárálása
	iso-8859-15..utf8 modositando_file : Nyugat európai kódolás konvertálása UTF8-ra

rsync
	# Hasznos file másoló, szinkronizáló program
	-a : Archive módban másol. Tulajdonosok, attributumok, linkek megmaradnak.
	-v : Bőbeszédű a kimenetkor.
	-z : Tömörítve küldi el.
	-b : Biztonsági mentésekhez használatos. *.~ végű file keletkezik.
	--exclude '*~' : kivéve a ~ végü file-ok.
	-avz /eleresi/ut/honnan/* 192.168.1.1:/eleresi/ut/hova
		# Relatív elérési úttal megadva, archive módban tömörítve menti a hálózati gépre.

tar 
	# Ki-be tömörítő

	Listázás
	--------
	-tvf file.tar      : megmutatja a mentes.tar tartalmát
	-tvfz file.tar.gz  : megmutatja a mentes.tar.gz tartalmát
	-tvfj file.tar.bz2 : megmutatja a mentes.tar.bz2 tartalmát
	-tvvf mentes.tar   : részletes listázás, jogok, tulajdonos etc.

	Betömörítés
	-----------
	-cvf file.tar /eleresi/ut 		    : az elérési útvonal alatt levő adat tar-ba tömörítése.
	-cvfz file.tar.gz /eleresi/ut/amit/mentunk  : az elérési útvonal alatt levő adat gzip-be tömörítése.
	-cvfj file.tar.bz2 /eleresi/ut/amit/mentunk : az elérési útvonal alatt levő adat bz2-be tömörítése.

	Kitömörítés
	-----------
	-xvf file.tar     : Kitmöröíti a tar-t és egy /file mappába teszi
	-xvfz file.tar.gz : Kitömöríti a gz-t, majd a tar-t, és egy /file könyvtárba teszi
	-xvfj file.bz2    : bzip2-t tömöríti ki

	
	Exclude példa
	-------------
	-cvfz file.tar.gz /home/mit/ --exclude={„/home/MIT_NE”,”/home/MIT_NE2”}
		# /home/mit mappa tartalmát betömörítjük gzip-be, kivéve /home/MIT_NE, /home/MIT_NE2-t.
	

mcrypt file.txt
	# mcrypt-el történő jelszóval védett file titkosítás. (mcrypt csomag telepítése szükséges)
	# a kimeneti állomány file.txt.nc, tartalma visszafejtés nélkül olvashatatlan.

	
mdecrypt file.txt.nc
	# fentebb titkosított file.txt.nc állomány visszafejtése
	# érdemes az eredeti file.txt-vel nem azonos mappában kiadni visszafejtési parancsot, ugyanis
	# felülírhatja az eredetit.

vi
	# Parancssoros szövegszerkesztő
	# Kilépés mentéssel     : ESC, majd :wq
	# Kilépés mentés nélkül : ESC, majd :q!

vi -b +/mikulas fájl
	b : Bináris állomány szerkeszthetőségét teszi lehetővé
	+/mikulas : a fájl-ban a mikulas kifejezéshez ugrik

which program
	# A program futtatható állományának elérési útvonalát adja meg (általában /usr/bin)

watch cat file
	# A file változásait figyeli, 2 másodperces időközönként frissítve.


alias
	# A parancsok saját elképzelések szerint átnevezhetőek.
	# /home könyvtár .bashrc fájlja tartalmazza beállításokat.
	alias rm='rm -i' : A törlés parancs kiadása után rákérdez, hogy valóban akarjuk e. Ajánlatos!

unalias
	# Az előzőekben beállított értékek visszaállítása. (törli a .bashrc-ből.)



Kvóták beállítása Linux alatt


APT-vel szükséges telepíteni a quotea csomagot.


quota
	# Tároló kvótázás programja

quota -v
	# A bejelentkezett felhasználó kvótabejegyzései

quotacheck -uagv
	# Végignézi a fájlrendszert, a tárkorlátok adatainak begyűjtése érdekében
	# Majd feltölti az adatbázist (aquota.user, aquota.grp)
	-u : alapértelmezett
	-a : minden fájlrendszer ellenőrzésre kerül
	-g : csoportadatok keresése
	-v : verbose, bőbeszédü

quotaon -augv
	# kvóták bekapcsolása

quotaoff -av
	# kvóták kikapcsolása

repquota -av
	# kvótabejegyzések listázása felhasználónként.

edquota -u user
edquota -g group
	# Felhasználó, csoport kvóták beállítása
	# Alapértelmezett szerkesztő átmeneti állományaként állítható be
	# Ezért érdemes: export EDITOR=kedvenc_szerkesztőnk -et beállítani.

	-p user user2	: user2 kvótáit állítja be, user mintájára
	
	/etc/fstab file-ban, az adott partícióhoz szükséges az options-be megadni: usrquota, grpquota kapcsolókat.




Rendszeradminisztráció       top

login
	# Bejelentkezés

logout
	# Kijelentkezés

who
	# Bejelentkezett felhasználók kiíratása

w
	# Nemes egyszerűséggel megmutatja, ki van belépve, és mit csinál

whoami
	# Milyen néven is jelentkeztünk be?

users
	# Kiírja az rendszeren levő felhasználók nevét

adduser
	# Új felhasználó létrehozása (felhasználóbarát)
	
useradd
	# Új felhasználó hozzáadása
	# Ha opciókat használunk, a user-nevet a sor végére írjuk!
	-u szám 		: felhasználói azonosító megadása (UID)
	-g csoport		: csoport tagság beállítása
	-d /home/user 		: A felhasználó HOME mappáját állítjuk be /home/user -re.
	-s /bin/false 		: Alapértelmezésként nem kap shell-t bejelentkezéskor. 
	-G csoport1,csoport2    : vesszőkkel elválasztva, ha egyéb csoportnak is tagja a felhasználó
	-m -k /home/letezo uj   : egy létező felhasználó mintájára építi fel az új user home-ját.
		# Minden fájl és könyvtár is belekerül a fiókba, + a beállítások is.
	
usermod
	# Felhasználói fiókok módosítása
	-u érték user 		: a felhasználó azonosítóját változtatja (UID)
	-g csoport user 	: a felhasználó csoportját változtatja
	-G csoport1,csoport2 	: a júzer-t több csoporthoz is rendeli
	-L user 		: lock-olja a felhasználó hozzáférését (nem tud belépni)
	-U user 		: unlockolja a hozzáférést

userdel 
	# Felhasználó törlése
	-r user : home-al együtt törli

deluser 
	# Felhasználó törlése

groupadd 
	# Csoport létrehozása
	-g szám csoportnév : Egyénileg választott csoportazonosítóval (GUID)-el hozunk létre csoportot
	# /etc/group : csoportlista

groups user
	# A user csoportjait adja meg.

id -nG user
	# Szintén.

groupmod
	# Csoport fiókját változtatja
	-n név újnév : csoport nevét változtatja

gpasswd
	# Csoport adminisztráció.
	groupka 		: groupka nevű csoport létrehozása
	-a Peti groupka 	: Peti nevű user-t hozzáadja groupka csoporthoz.
	-d Peti groupka 	: Peti-t kitörli groupka csoportból
	

history
	# Sorszámozottan megadja az utolsó N parancsot, amit az aktuális felhasználó adott ki. (default: 500)	
	
	cat /home/username/.bash_history 	
		# username nevű felhasználó saját history-jának kiíratása, root-ként engedélyezett

	!n  
		# n-edik sorszámú parancs újra futtatás
	
	!-n
		# n-el korábbi parancs futtatása

	!! 
		# legutóbbi parancs újra futtatása

	history -c
		# clear history

	export HISTTIMEFORMAT='%F %T  '
	history
		# "EV-HONAP-NAP Ora:Perc:Masodperc Parancs" formátumban kapjuk meg a history kimenetét
	
	unset export HISTTIMEFORMAT
		# visszaállítás az eredeti állapotra/kimenetre

	export HISTCONTROL=ignoredups
		# duplikálás kiszűrése. Kikapcsoláshoz szintén unset export..

	export HISTSIZE=0
		# history kikapcsolása


	Perzisztens beállításhoz
	----------------------
	/home/username/.bash_profile file-ba fel kell venni a fenti sorokat.


talk
	# Felhasználókkal való kommunikálás egyik eszköze

finger
	# Felhasználó információi

chfn
	# Felhasználói információk megváltoztatása (finger kimenete)
	
last
	# Ki jelentkezett be utoljára és honnan (felhasználó vagy terminál alapján)

lastlog
	# /var/log/lastlog kimenete

locale
	# Kiírja az aktuális lokalizációt
	dpkg-reconfigure locales
	update-locale
	# Újra konfiguráljuk a locales-t, ezáltal új nyelveket használhatunk a rendszeren alapértelmezettként. 
	# A második sor is kötelező.

passwd
	# A bejelentkezett felhasználó jelszavának módosítása
	# Userként kiadva saját jelszavunkat változtatjuk meg. A régit tudnunk kell hozzá.
	user    : user nevű felhasználó jelszavát változtatja meg. root-ként, nincs szükség a régi jelszó megadására.
	-l user : lock user account. user jelszavát ideiglenesen megváltoztatja egy random karaktersorra.
	-u user : unlock user account.: Az eredeti jelszót visszaállítja user számára.
	-e user : expire. A user jelszavának azonnali lejárata. Következő belépésnél új jelszót kell adnia.
	-S user : status. Státusz információk kiírása. 7 mezőből áll melynek értékei.:
			# 1.: Usernév, 
			# 2.: L-locked, NP-No Password, P-Password 
			# 3.: Utolsó jelszó váltás dátuma
			# 4.: min. év. (napokban)
			# 5.: max. év  (napokban)
			# 6.: figyelmeztetési periódus (napokban)
			# 7.: inaktív periódusa a jelszó tekintetében.

stat file
	# File név, relatív elérési útvonal, méret, hozzáférési jogok, access, modify, change, 
	# UID, GID, egyéb hasznos infók kiíratása 

su - user
	# Indít egy másik shell-t, user felhasználóként

cfdisk
	# Lemezkezelő, partícionáló

fsck
	# lemezellenőrző

smartctl
	# HDD vizsgálatára, SMART értékek figyelésére alkalmas program. 
	# smartmontools csomag tartalma, telepítenünk kell repo-ból.
	
	-i /dev/sda : Eszközinformációk kiíratása.

		# Ha a SMART support nincs bekapcsolva az eszközön, az alábbi paranccsal kapcsolhatjuk be.:
		-s on /dev/eszköz
	
	-A /dev/sda : Attributum táblák megjelenítése. Legtöbben ezekre az értékekre vagyunk kíváncsiak.
	-t long VAGY --test=long /dev/sda : sda eszköz teljes vizsgálata
	-t short VAGY --test=short /dev/sda : sda eszköz gyors vizsgálata
		
		# Az eredményeket utóbbi két esetben az alábbi paranccsal nézhetjük meg.:
		-l selftest /dev/sda
	
	-H /dev/sda : Az sda eszközünk jó-e vagy sem?
	--all /dev/sda : Minden SMART információ kiíratása.

tty
	# Bejelentkezett felhasználó terminál információi

stty 
	# A terminál beállításainak kiíratása
	-a 	: verbose mód

write user tty
	# Egy Linux gépre bejelentkezett felhasználónak üzenet küldésre szolgáló parancs

mesg
	# A write üzenetküldő aktuális beállítását kérdezhetjük le. (engedélyezve vagy tiltva van)

mesg n
	# A write üzenetküldő tiltása

mesg y
	# A write üzenetküldő engedélyezése

mkswap 
	# Swap terület létrehozása

swapon 
	# Swap bekapcsolása

swapoff
	# Swap kikapcsolása

sync
	# A Ramból a merevlemezre még ki nem írt adatok szinkronizálása (Fontos)





Folyamatok       top


command &
	# command futtatása a háttérben
	fg "sorszám"	: felélesztés, majd előtérben futás
	bg "sorszám"	: felélesztés, majd háttérben futás

Ctrl+Z
	# Előtérben futó process (pl mcedit) háttérbe helyezése.

Ctrl+C
	# Félresikerült/megakadt process bezárására hasznáéható billentyű kombináció

jobs
	# Háttérben futó programok kiíratása
	# Az itt megkapott értékek használhatóak az fg, bg parancsoknál.


command1 && command2
	# command1 sikeres futását követően command2 is lefut.
	# Amennyiben command1 visszatérési értéke nem 0 (tehát sikertelen), úgy az utána 
	# soron következő parancs(ok) nem fut(nak) le

		
		letix@microserver:~/test$ ls && echo masodik parancs sikeres
		dir1  dir2
		masodik parancs sikeres
		letix@microserver:~/test$ ls dir3/ && echo masodik sikeres
		ls: dir3/ nem érhető el: Nincs ilyen fájl vagy könyvtár
		

top
	# Futó folyamatok kiíratása

	h	: help
	u	: felhasználókra szűrhető lista
	z,b	: a táblázat színezése, illetve kivastagítása
	Z,B	: a táblázat színeinek, kivastagíthatóságának módosítása
	l,t,m	: a lista fejléce, terhelési adatok, egyebek jeleníthetőek meg/kapcsolhatóak ki

pidof folyamat
	# A folyamat azonosítóját adja meg (PID - process ID)	

ps
	# Futó folyamatok kiírása
	-u pisti : pisti felhasználó által futtatott folyamatok
	aux 	 : minden folyamatot kiír, szinte minden információval
	alxww 	 : minden folyamatot, még több infóval (pl.: PPID)
	-t1 	 : tty1-es terminál kilistázása
	f 	 : erdő szerű megjelenítés
	l 	 : kiírja a folyamatok PID-jét és PPID-jét is. (parent's process identifier)
	ww 	 : a programok parancssori kapcsolóit írja ki.
	
	-o user,pid,ppid,start_time,uid,%cpu,%mem,cmd
	# felhasználónév, processid, parent processid, kezdési idő, CPU, MEM, kapcsolók
	# formában adja meg a folyamatokat.
	
		
		USER       PID  PPID START   UID %CPU %MEM CMD
		letix    19284 19283 10:39  1000  0.0  0.1 -bash
		letix    22095 19284 14:33  1000  0.0  0.0 ps -o user,pid,ppid,start_time,uid,%cpu,%mem,cmd 

pstree
	# Folyamat struktúra fa-szerű ábrázolása.

pgrep
	# Folyamatlista szűrése adott minta alapján
	-u user		  : megadja user nevében futtatott folyamatok PID-jét
	-u user screen	  : megadja user nevében futtatott screen folyamat PID-jét
	-lu 0		  : megadja a 0 UID-el rendelkezeő (root) felhasználó folyamatainak nevét és PID-jét

pkill
	-9 -u user screen : user nevében futtatott screen folyamat erőltetett leállítása 
			    hasznos lehet, ha többen futtatnak screen-t
	


kill "pid"
	# Folyamat leállítása PID szerint
	-1 	    : jelentése SIGHUP. A folyamat bezárása, config fájl beolvasása, folyamat újraindítása
	-9 	    : jelentése SIGKILL, folyamat erőltetett bezárása. (Csak végszükség esetén)
	-15 	    : jelentése SIGTERM, szabályos programleállítás
	-l	    : a teljes signal táblázat kiíratása. Ezek a jelek küldhetőek folyamatoknak	
	-s "signal" : -l átal megadott táblázatban található signal-ok küldhetőek adott processnek.
    
		
		letix@microserver:~$ yes > /dev/null &
		[1] 22268
		letix@microserver:~$ kill -s 6 22268
		[1]+  Félbeszakítva         yes > /dev/null
		

killall command
	# az összes fehasználó által futtatott "command" nevű folyamat leállítása


nice
	# Priorítása lekérdezése, beállítása
	-n --20 program : a rendszer a legtöbbet ezzel a programmal fog foglalkozni. (+19-től -20 ig)

renice -10 1124
	# 1124-es folyamat -10-es prioritásra állítása

init
	# Futtatási szint beállítása (run levels)
	# Az egész rendszer állapotjelzője, ami  meghatározza, mely szolgáltatások működnek, vagy épp indulnak el 
	# rendszerindításkor. A futási szintek számokkal kerülnek azonosításra.
	# Definiálhatóak különböző szintek annak függvényében, hogy milyen jellegű munkára lesz használva a gép.
	# Például ha X-el, bluetooth-al és egyéb erőforrás igényes alkalmazásokkal lesz használva, úgy létrehozható 
	# egy 5-6-os init szint. Ezt a szintet az inittab-ban szükséges beállítani alapértelmezettként induláshoz, 
	# de akár a rendszer futása közben is módosítható az aktuális szint. -> Akár több szolgáltatás is indítható vagy
	# leállítható egy paranccsal.  
	#
	# Init szintek
	# ---------------

	0   : kikapcsolás
	1   : single-user mód (speciális rendszeradminisztrációs funkciókra)
	2-5 : multi-user mód, (normál működés)
	6   : reboot

	# Új szolgáltatás hozzáadása 
	# ----------------------------- 
	# Program bemásolása /etc/init.d-be, majd erről egy link létrehozása a kiválaszott 
	# init szint könyvtárába (pl.: rc2.d) Csak akkor indulnak el, ha S betűvel kezdődnek. 
	# A kezdőbetű után levő számok az induló folyamatok sorrendjét befolyásolják.
	#
	# /etc/inittab -ban állítható be a gép alapértelmezett indulási init szintje.
	
		The default runlevel.
		id:2:initdefault: 
	

  	# Daemonok kezelése
	# ---------------------

	/etc/init.d/daemon_nev start	:   daemon indítása
	/etc/init.d/daemon_nev stop	:   daemon leállítása
	/etc/init.d/daemon_nev restart	:   daemon újraindítása
	/etc/init.d/daemon_nev status	:   daemon status infók kiíratása
	

runlevel
	# Megadja, hanyas init szinten voltunk és vagyunk. (kimenet pl.: N 3 , vagy 3 2.) típusú.
	# 3 N jelenti, hogy 3-ason voltunk és vagyunk, 3 2 pedíg hogy 3-ason voltunk 2-esen vagyunk

fuser
	# Folyamatok azonosítása nyitott file-ok vagy process-ek alapján (érdemes root-ként futtatni)
	-v .		: aktuális felhasználó folyamatai
	-v -n tcp 80	: mely folyamat használja a TCP/80-at?	
	-vm  /mnt/test	: megadja azon folyamatot, mely fogja /mnt/test mappát.
	-vmk /mnt/test	: kilövi azon folyamatot, mely fogja /mnt/test-et
	-v /var/run/mysqld/mysqld.sock 	:  mely folyamat használja a mysqld.sock socketet?
	
		
		root@microserver:/home/letix# fuser -v -n tcp 10000
         	          	  FELHASZNÁLÓ  PID  HOZZÁFÉRÉS PARANCS
		10000/tcp:          	 root  1764 F....      miniserv.pl
		root@microserver:/home/letix# mlocate miniserv.pl
		/usr/share/webmin/miniserv.pl
		



shutdown 
	# Kikapcsolás
	-h now 	   : Azonnali kikapcsolás (időt is megadhatunk)
	-h 12:00 & : A gép kikapcsolása 12:00-kor.
	-c         : Az időzített kikapcsolási folyamat megszakítása
	-r 0       : Azonnali újraindítás
	




Időzített parancsfeldolgozás       top

at
	# Megadott időpontban futtathatunk programokat
	-f todo 23.59 : előre megírt parancsainkat (todo fájlban) 23:59-kor lefuttatja az at.
	# Idő formátumok
		# 13.13 01.01.02 : 13 óra 13 perc, 2002, január 1
		# 2pm tomorrow : honlap délután 2
		# 1am Sun : hajnali 1 óra, vasárnap
	
atq
	# Az at várakozási sorrendjét ismerteti
	
atrm pid
	# Az at várakozási sorából való eltávolítás, Process ID alapján

cron
	# A Linux parancs ütemezője
	# /etc/cron.d ; /etc/cron.daily ; /etc/cron.weekly
	crontab -l : kilistázza a belépett user beállított ütemezéseit
	crontab -e : Editáljuk a belépett user ütemezéseit
	
	Crontab paraméterezése.:
	------------------------
	
	Perc        Óra    Hónap napja      Hónap            Hét napja        Parancs    
	(0-59)     (0-23)    (1-31)    (1-12 v. Jan-Dec) (0-6 v Vas.-Szo.)    Parancs        
	 

	Példák
	------
	   
	0      	     2         12             *               0,6             ping 192.168.1.1		
	
	Minden hónap minden szombatján és vasárnapján amelyek 12.-ére esnek, 2:00-kor megpingeli a címet.
	
   	 
	30	    10	        *             *                *              ping 192.168.1.1	
	
	Minden nap, 10:30 kor megpingeli a címet.
	
   		
	00	 1-8,12-17      *             *                *              ping 192.168.1.1	
	
	Minden nap, 1:00-től 8:00-ig és 12:00-től 17:00-ig minden óra 0. percében fut 
	
	
	Alkalmazhatunk például vesszőt is, az első rublikába írva "0,30" jelenti minden óra
	0. illetve 30. percét, illetve intervallum is megadható.
	
	
	További példák.:
	----------------

	@reboot parancs : A következő indításnál lefutó parancs.
	@weekly         :"0 0 * * 0" : Hetente egyszer fut le, vasárnap éjfélkor.
	@daily          :"0 0 * * *" : Naponta egyszer fut le, éjfélkor.
	@midnight       :"0 0 * * *" : éjfélkor, ekv. az előzővel.
	@hourly         :"0 * * * *" : Minden egész órakor fut le.


date
	# Dátum kiíratása vagy beállítására használatos program
	+%F : 2011-11-04 formátumban írja ki az aktuális dátumot.
	+%Y%m%d : 20111104 formátumban írja ki az aktuális dátumot.
	-d-2day +%F : 2011-11-02 formátumban írja ki a 2 nappal korábbi dátumot.
	11041153 : Beállítja az dátumot aktuális év, November 04., 11:53-ra.	


sleep 5 parancs
	# 5 Másodperc múlva indítja a "parancs"-ot.

schedutils
	# Linux rendszer ütemező

screen
	# Ablakkezelő, virtuális terminál emulátorral.
	# Háttérbeli programok futtatásához alkalmazható program.
	
	screen  		  : Egy új VT-t (virtuális terminált) indítható
	Ctrl+a+d 		  : bill. kombinációval tehetjő háttérbe.
	screen -ls		  : screen-ek listázása
	screen -d -m -S name	  : elindítja a háttérben a screen-t "name" névvel
	screen -x name		  : name nevű terminál hozható előtérbe	
	screen -R PID		  : paranccsal lehet előtérbe hozni. (PID - processID, ps aux-al megnézhető)


	# SCREEN-ben kiadható billentyű kombinációk
	-------------------------------------------

	Ctrl+a+d 		  : bill. kombinációval tehető háttérbe.
	Ctrl+a+? 		  : előhozhatő a legfontosabb bill. kombinációkat
	Ctrl+a+c 		  : új ablak ltérehozása
	Ctrl+a+p VAGY n 	  : előző vagy következő ablakra ugrás. (previous, next)
	Ctrl+a :kill		  : aktuális screen lelövése	
	Ctrl-a :acladd USER	  : USER nevű felhasználó engedélyezése becsatlakozásra (lásd MULTIUSER MODE)
	

  	# MULTIUSER MODE 
  	# --------------
   	# 
  	# A screen többfelhasználós üzemmódja 
 	# Amennyiben kontrollált körülmények között szükséges beengedni valakit a gépre közös shellt 
 	# használva, úgy az alábbi lépéseket kell alkalmazni	  

  	screen
		# screen indítása a kiszemelt többfelhasználós gépen
	
	Ctrl+a :multiuser on
		# Ezt begépelve aktiválható az adott session-ön a többfelhasználós mód.
		# Másik oldalnak szükséges ismernie az adott user nevét/jelszavát, illetve SSH-n be kell tudnia 
		# csatlakozni a gépre. Ha mindez megvan, és SSH-n bejött.:
	
	screen -x
		#Voila!


time command
	# A command lefutási idejét méri

command &
	# command háttérbeli futtatása


command1 && command2
	# command1 visszatérési értékének függvényében command2 is lefuthat. (ha command1 sikeres volt)






Kernel,modulok,fordítás       top
	
lsmod
	# Betöltött modulok kilistázása

rmmod modulnév
	# Betöltött modul lekapcsolása a kernelből

modprobe modulnév
	# Modult tölt be a kernelbe

modinfo modulnév
	# a modulról kapunk információt

ldd program
	# Kiírja a programhoz szükséges megosztott könyvtárakat, függőségeket

# Linux kernel fordítás menete, röviden. (ez csak az egyik módszer) 
bővebben
	# Megfelelő kernel verzió beszerzése (www.kernel.org, pl.: linux-2.6.20.3.tar.bz2)
	# apt-get install wget bzip2 binutils kernel-package module-init-tools initrd-tools yaird	
	# tar zxvf linux-2.6.20.3.tar.bz2 (érdemes a /usr/src-be)
	# Belépés a létrejött könyvtárba
	# make mrproper (ha már próbálkoztunk beállításokal)
	# apt-get install libncurses5-dev
	# make menuconfig (az érdemi munka)
	# make-kpkg clean
	# make-kpkg --initrd kernel-image kernel-headers
	# cd ..
	# dpkg -i *.deb (2db állomány)



Csomagkezelés       top


apt	/Advanced Package Tools, A Linux csomagkezelője, az aptitude front-endje/
	-cache search          	: keresés
	-cache showpkg csomag  	: megmutatja a csomag függőségeit
	-cache policy csomag   	: a csomag telepített és telepíthető verzióit adja meg
	-get install csomag    	: telepítés
	-get remove csomag     	: törlés
	-get autoclean         	: nem használt csomagok törlése
	-get update            	: frissítás
	-get upgrade           	: frissítések telepítése
	-get dist-upgrade      	: distro frissítés
	-get -f install        	: törött, hiányzó csomagoknál jóbarát!
	-get clean             	: apt cache tisztítása
	-get build-dep csomag  	: telepítés minden egyes csomagjával együt
	-get source csomag     	: a csomag forrásának letöltése
	-file list csomag      	: kilistázza a csomag tartalmát

	-s kapcsoló esetén csak szimulálja a megadott feladatokat.
	

aptitude 
	 install program	: program telepítése	
	 search program		: program keresése a tárolókban
	 remove csomag		: csomag eltávolítása, a configok megtartásával
	 purge csomag		: csomag és configok eltávolítása	
	 clean 			: gyorsítótár ürítése
	 show csomag		: telepíthető "csomag"-ról információk
	 reinstall program	: adott program újratelepítése
	 update 		: csomaglista frissítése
	 safe-upgrade 		: a legújabb verzióra frissíti a telepített csomagokat.
	 full-upgrade 		: a legújabb verzióra frissíti a csomagokat. és eltávolít ha szükséges
	 dist-upgrade		: újabb verzióra való teljes rendszerfrissítés


echo "csomag hold" | dpkg --set-selections
	# csomag nevű csomag visszatartása a frissítések során.
	# visszaállítása: hold helyett install-t szükséges megadni

dpkg --get-selections
	# feltelepített csomagjaink listáját kapjuk meg, állapotuk feltűntetésével.



dpkg	/Debian packages/
	# .deb csomagkezelő
	-i csomag 	    : telepítés
	-r vagy --purge     : törlés
	-reconfigure csomag : csomag újrakonfigurálása
	-l 		    : csomagok listázása
	-I csomag 	    : csomag információk megjelenítése
	-S fájl 	    : megmutatja melyik csomaghoz tartozik a fájl
	

	A feltelepített csomaglista mentése, visszaállítása

	dpkg --get-selections > /eleresi/ut/csomagok.txt : feltelepített csomagok neveinek mentése TXT-be. 
	dpkg --set-selections < /eleresi/ut/csomagok.txt : a TXT-ből kiolvassa a felsorolt csomagokat.
	apt-get -y update
	apt-get dselect-upgrade
		# Első lépésben a feltelepített csomagok listája a csomagok.txt-be kerül mentésre.
		# Második, harmadik, negyedik lépésben pedig a telepített sw.-k listájában felsorolt  
		# csomagok újratelepítése
		

dselect
	# A dpkg barátságosabb arca


./configure
make
make install
	# Csomag telepítése forrásból.
	# A parancsot abban a mappában szükséges kiadni, ahova lett másolva az adott program 

make clean
	# Ha esetleg valamilyen kapcsolót kihagytunk a fordítás közben,
	# ezzel a parancsal pucolhatunk az újrafordítás előtt.

make uninstall
	# Forrásból telepített program uninstall

alien
	# Csomag konverter program (pl.: .rpm .deb etc.)


A Red Hat csomagkezelője


rpm
	# Red Hat Package Manager

rpm -ivh csomag.rpm
	# csomag telepítése	

rpm -Uvh csomag.rpm
	# Frissítés vagy telepítés.
	# Ha nincs telepítve , telepíti, ha telepítve van, megpróbálja frissíteni

rpm -Fvh csomag.rpm
	# Csak frissítés. Ha nincs telepítve a csomag, kilép

rpm -e csomag.rpm
	# Törlés

rpm -q csomag.rpm
	# Megvizsgálja, hogy telepítve van e a csomag, és milyen verzió

rpm -qa
	# Az összes telepített csomag vizsgálata



Hálózat       top

arp
	# ARP cache manipulálása
	-d cím	: arp táblából adott bejegyzés törlése

	cat /proc/net/arp	: aktuális arp tábla kiíratása

	
ifconfig
	# Hálózati információk lekérése, konfigurálása
	
ifconfig eth0 192.168.10.1 netmask 255.255.255.0 up
	# 192.168.10.1-es IP-t osztunk az eth0-ra (0-s hálókártya)
	# 255.255.255.0 a netmask.

ifdown eth0
	# eth0 eszközt lekapcsolja      

ifup eth0
	# eth0 eszközt felkapcsolja ( dhcp esetén kér IP-t a kiszolgálótól)


iptables

	# A Netfilter (hálózati csomagok feldolgozására szolgáló eszköz) kezelője.
	# Az iptables a hálózati csomagok feldolgozási szabályait szerepük alapján szervezett	
	# táblák formájában kezeli. 
	#
	# Szerepek (táblák - a feldolgozási folyamat típusát jelentik).:
	# 	Csomagszűrés (filter)
	# 	Hálózati címfordítás (nat)
	# 	Egyéb csomagmódosítás (mangle)
	# Ezen táblák mindegyikére feldolgozási szabályok (rules) lánca (chain) vonatkozik. 
	# A szabályok illesztésekből (match - mely csomagokra vonatkozik,) és célokból (target - mit kell
	# tennünk az illeszkedő csomaggal) épülnek fel. 
	#
	# Az iptables öt kapcsolódási pontot határoz meg a feldolgozás során.: 
	# 	PREROUTING : A hálózati csatolótol kapott csomag, még az INPUT lánc előtt ide kerül.
	#	INPUT : Épp mielőtt megérkezne a csomag egy helyi folyamathoz. (itt illik szűrni a bejővő forgalmat)
	#	FORWARD : Egy átjáró gépen a továbbított csomagok itt áramlanak keresztül
	#	OUTPUT : Miután egy helyi folyamat létrehozta a csomagot, itt távozik (kimenő csomag szűrés!)
	#	POSTROUTING : Mielőtt elhagyná a hálózati csatolót a csomagunk, az OUTPUT lánc után.
	#
	# A táblák, és beépített láncaik:
	#	filter tábla: FORWARD, INPUT, OUTPUT
	#	nat tábla: PREROUTING, OUTPUT, POSTROUTING 	  	
	#	mangle tábla: PREROUTING, FORWARD, INPUT, OUTPUT, POSTROUTING	
	#
	# A láncok házirendje (policy).:
	#	Ezt a policy-t lánconként (INPUT, OUTPUT, FORWARD) a tűzfal szkriptünk legelején fixálnunk kell.
	#	Azok a csomagok, amelyek a tűzfal láncaiban felsorolt szabályokra nem illeszkednek, azokra a default 
	#	policy vonatkozik, azaz  vagy ACCEPT, vagy DROP.
	#	Pl.: Ha a tűzfalunk INPUT láncában csak a 80-as portot engedéjezzük, a policy-nk pedig DROP, 
	#	akkor minden más porton érkező csomagot (amely nem illeszkedik a 80-as portot definiáló szabályra) eldob.
	#
	# Lánc műveletek, szabály módosítások:
	#	-N : új lánc létrehozása 
	#	-X : üres láncok törlése
	#	-P : default policy beállítása 
	#	-L : a láncok szabályainak megjelenítése 
	#	-F : a lánc összes szabályának törlése 
	#	-A : új szabály hozzáadása egy lánchoz
	#	-D : törlés az adott láncból
	#
	# Forrás (-s, --source, --src) és célcímek (-d, --destination, --dst) megadásának módjai.:
	#	Teljes név használata.: localhost, vagy pl.: www.debian.org
	#	IP cím alapján a meghatározás.: 127.0.0.1
	#	IP cím tartomány(ok) alapján.: 192.168.1.0/24 vagy 192.168.1.0/255.255.255.0
	#		(Mindkét tartomány 192.168.1.1-től 192.168.1.254-ig fedi le az IP címeket.)
	#	Inverz módon is megadhatunk forrást és célt, "-s !" localhost" formájában.
	#
	# Protokollok megadása.:
	#	-p TCP vagy UDP vagy ICMP formájában történik.
	#	Itt is alkalmazható az inverz, azaz "-p ! TCP", minden csomagra illeszkedik a szabály amely nem TCP.
	#
	# Interface meghatározása.:
	#	Az interface maga a fizikai eszköz amelyen bejön, vagy távozik a csomag.
	# 	INPUT láncon "-i eth0" értelmezhető, nincs kimeneti interface-ük.
	#	OUTPUT láncon "-o eth0" adható meg, "-i" kapcsolóra egy csomag sem fog illeszkedni.	
	#	FORWARD láncon alkalmazhatóak a "-i eth0" és "-o eth0" interface-ek.
	#	Alkalmazható joker karater az interface-eknél, ez a "+" jel. "-i eth+" -> az összes eth iface.
	#
	# Portok, port tartományok megadása
	#	A portok megadhatóak számmal, vagy névvel. (utóbbi esetben.: /etc/services). 
	#	Port tartományokat "port:port" formában kell alkalmaznunk. Invertálás itt is alkalmazható.
	#	--source-port VAGY --sport : a csomagok forrásportját adjuk meg 
	# 	--destination-port VAGY --dport : a csomagok cél portját határozuk meg.


	Folytatás később. Addig emésszétek! :)



host
	# Lekérdezéseket kezdeményez a DNS kiszolgáló felé, tartományokról, zónákról.
	-t ns valami.hu : valami.hu Name Server-ét adja meg
	-t mx valami.hu : valami.hu levelező szervereiről ad információt 

hostname
	# Beállítja vagy megjeleníti a rendszer host-nevét.

iperf
	# Sávszélesség korlátozásra használatos program.

curlftpfs -o allow_other username:password@ftp.domain.dom /csatolasi/pont
	# Felcsatolhatunk ftp tárhelyeket, lokális fájlrendszerünkbe. (fusermount segítségével)
	
	# Ha a hiba.:
	# "If you don't use udev, you may get this error message:
	# fusermount: failed to open /dev/fuse: No such fdevice or address
	# Before loading the fuse kernel module, create the device node manually:
	
	# A megoldás.:
	mknode -m 666 /dev/fuse c 10 229




echo 0 > /proc/sys/net/ipv4/ip_forward
	# Ha gépünket router-ként használjuk, érdemes beállítanunk a csomag továbbítást
	# 1-es engedélyezi a tiltást, 0 tiltja a tiltást!

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
	# Beállítjuk, hogy broadcast ping-re ne válaszoljon gépünk

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
	# Beállítjuk, hogy ne válaszoljon gépünk a ping-re

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
	# Engedélyezzük a hamis csomagok szűrését

...etc

	--------------
	# Ezek a beállítások rendszerleállításkor elvesznek, érdemes őket valamely induláskor 
	# lefutó script-be tenni, a hálózati interfészeket konfiguráló script elé.
	--------------



etherwake
	# Magic packet-et küld a wake-on-lan enabled hálókártyára

ethtool
	# Ethernet kártya beállítások megjelenítése, változtatása

iptraf
	# Hálózat terhelést figyelő program

iptstat
	# Top-szerű hálózat elemző eszköz.

ifstat
	# interface statisztikák készítése
	# ifstat programot szükséges telepíteni
	
ifstatus
	# interface státusz kiíratása (van-e link adott kártyán/kábelen)
	# ifplugd program részét képezi
	# újabb verzióban már az ifplugstatus -t szükséges használni.

mii-tool
	# Hálózati tesztelő

nbtscan
	# NetBIOS információkat adja meg, a hálózaton

netstat
	# Információkat ír ki a hálózati alrendszerről
	-r  : route kimenete 
	-i  : interfész tábla
	-tp : TCP/IP -t használó processzek listája 

netstat	-tn|grep ':80'|tr -s ' '|cut -d ' ' -f5|cut -d':' -f1
	# kik csatlakoznak a gépünkre a 80-as porton? 


netstat-nat
	# Nat-olt kapcsolatok megjelenítésére szolgáló eszköz.
	-n : Nem fordítja le a megjelenített IP-ket Hostname-ekre.

netcat
	# TCP/IP swiss army knife

nload
	# Network load - Hálózati terhelés vizsgálat

ngrep
	# grep, hálózati forgalomhoz

netsed
	# Hálózati csomagok valós idejű megváltoztatására alkalmas program

nslookup www.host.com
	# host.com IP címének vizsgálata

nmap
	# Elsősorban port scanner, de igen sokrétű alkalmazás
	-O ip_cim 	    : Op.rendszer detektálás
	-p 1-10 ip_cim      : Portok vizsgálata 1-10 ig.
	-sP 192.168.10.0/24 : komplett 10.0-s hálózat ping scan.
	-p U:53,111,137,T:21-25,80,139,8080 ip_cim : UDP-n 53,111,137, TCP-n 21-25,80,139,8080-at vizsgál.
		

ping host
	# Ping jelet küld a host-nak
	-b ip_tartomány : broadcast üzenet küldés


route
	# A Linux útválasztó táblájának megjelenítése (Routing table)

route add -net 192.168.10.0 netmask 255.255.255.0 eth0
	# A 192.168.10.0-s hálózatra menő csomagokat az eth0-ra irányítja a rendszer
	# A hálót így már látnunk kell

route add default gw 192.168.10.254
	# 192.168.10.154-es IP-vel rendelkező router (gateway) hozzáadása a routing table-hez.

route del default gw
	# Alapértelmezett átjáró törlése a routing table-ből.


Static route hozzáadás


up route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
	# Static route hozzáadása az adott eth eszközhöz. ( /etc/network/interfaces ethX szeksziójához hozzáadandó)
	# Az ethX eszközünk 192.168.2.0 hálózat felé a 192.168.2.1 legyen a default gateway.

down route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
	# A Fenti kikapcsolása.	



rsh
	# Távoli shell
	-l user gepnev parancs : a "parancs"-ot lefuttatja a távoli gépen, user nevében

smbclient
	# SMB hálózati erőforrások tallózása

smbclient -M gépnév
	# Üzenet küldése Windows-os gépekre (net-send szolgáltatás). Elküldés:Ctrl + D az üzenet végén
	echo üzenet | smbclient -M gépnév : azonnal küldi, nem kell Ctrl+D
	
ssh host	/Secure SHell/
	# Titkosított hálózati bejelentkezés
	# config file-k.: /etc/ssh/sshd_config, /usr/local/etc
	ssh-keygen -t rsa : RSA kulcs létrehozása ssh-hoz.

scp
	# Biztonságos távoli fájl átvitel

sntop
	# Top-szerű hálózati forgalom figyelő szoftver.

tcpdump
	# Hálózaton átmenő forgalmat figyeli.
	-i ethX : Az ethX csatolón átmenő forgalmat figyeli.

traceroute host
	# A hálózati útvonal kiírása a célszerverig (host) /IP hálózaton/

trickle
	# Sávszélesség korlátozásra használatos program.
	-u 100 -d 200 proftpd : A proftpd démon számára biztosít 100KB fel, 200KB letöltési sávszélt.

tsclient
	# Terminal Services Client

proftpd
	# FTP server 

pure-ftp
	# FTP server

rdesktop
	# Remote desktop kliens

stunnel
        # SSL (Secure Socket Layer) titkosított kapcsolatba csomagolhatunk protokollokat. 
	# pl.: POP3, IMAP, etc.

squid
	# Proxy kiszolgáló
	# config file.: /etc/squid/squid.conf


Virtuális hálókártya létrehozása

vconfig
	# virtuális eth eszközök létrehozására alkalmas program. 
	# vlan csomag tartalmazza, tehát ezt telepítenünk kell.
	vconfig add eth0 1 : az eth0:1 eszköz hozzáadása, majd fel kell vennünk a /etc/interfaces-be!
		
		...
		auto eth0
		allow-hotplug eth0
		iface eth0 inet static
		    address 192.168.1.42
	 	   netmask 255.255.255.0
	 	   gateway 192.168.1.254
	
		auto eth0:0
		allow-hotplug eth0:0
		iface eth0:0 inet static
 		    address 192.168.1.43
    		    netmask 255.255.255.0

		auto eth0:1
		allow-hotplug eth0:1
		iface eth0:1 inet static
    		    address 192.168.1.44
    	   	 netmask 255.255.255.0
		

ipcalc
	# TUI felületű IP számláló. (hasznos lehet hálózat tervezés/bővítéskor)

darkstat
	# Hálózati statiszkikák gyűjtésére szolgáló program.

vsftpd	/Very Secure FTP daemon/
	# config file.: /etc/vsftpd
	# Néhány fontos kérdés.:
	-anonymus_enable : anonymus ftp engedélyezése. Szükség van egy ftp nevű user-re.
	-local_enable : normal felhasználókat engedjük be. (kell az anonymus hoz is)
	-write_enable : engedi az írást
	-local_umask : felhasználók autómatikus jogai (default 022)
	-anon_upload_enable : anonymusként feltülthetünk
	-anon_mkdir_write_enable : anonymusként mkdir engedélyezés
	-xferlog_enable : xfer log-ot ír a daemon
	-connet_from_port_20 : 20-as portot használ
	-chown_uploads : anonymusként feltöltött fájlok tulajdonosának megváltoztatása
	-chown_username : Kinek a tulajdona legyen a file
	-idle_session_timeout : inkatív kapcsolatok bontási ideje

wireshark
	# Hálózati forgalom figyelő (GUI)

wondershaper
	# Egyszerű sávszélesség korlátozásra használatos program.
	ethX 1024 1024 : Az ethX eszköz részére biztosít 1024Kbit le és feltöltési sávszélt.
	ethX clear : Törli a beállításokat.




Bash programozás       top

	# A parancsértelmező által ismert parancsok fűzhetőek össze egy "programba" vagy más néven shell script-be. (lásd .bat)
	# A program első sorában minden esetben meg kell adni a futtató programot (shell-t), jelen esetben a bash-t.
	# Tehát a fájl kezdete legyen bash esetén: 
	   #!/bin/bash
	# Felkiáltójel nélkül más futtató program (parancsértelmező) is megadható a program első sorában.
	# Futtatási jog nélkül nem futtatható, ezért 
	   chmod +x programnev
	# Program futtatásához a lehetséges parancs(ok)
	  ./programnev 
	  sh programnev 
	  bash programnev 

Írásjelek

\ 	Escape-karakter:
		# Bourne Again Shell escape-karaktere. Többek között ezzel a jellel lehet elérni,
		# hogy az őt követő speciális karakter elveszítse módosító hatását.

$ 	Dollárjel 
		# Segítségével változó neve és értéke között tudunk különbséget tenni.
		# Ha $valtozo-t írunk, az a változónk értékét fogja visszaadni.

" " 	Kétszeres idézőjel  
		# Az idézőjelek arra valók, hogy egyes karakterek vagy lefoglalt szavak speciális
		# jellegét feloldják.

' ' 	Egyszeres idézőjel 
		# Megakadályozza a héjat (shell), hogy a $-t a változók jelzésének tekintse

[] 	Szögletes zárójel
		# Intervallumok megadására szolgáló eszköz
	
? 	Kérdőjel 
		# Egy elem helyettesítésére szolgáló jel
	
* 	Csillag
		# Joker karakter, bármennyi karakter helyettesítésére

` 	Felsővessző: (jobbra tartó - AltGr + 7)
		# Operátor, mely a két ` ` között lévő jelsort végrehajtja, és a kimenetét adja vissza
		# úgy, hogy az új sor karakter helyére szőközt rak.

# 	Kettőskereszt
		# Kommentezés eszköze. (megjegyzés)
	
& 	And jel 
		# Parancsok háttérbeli futtatására szolgáló eszköz. 
		# Pl.: updatedb &
	
&& v. ; Kettős And jel, vagy pontosvessző: 
		# Parancsok futtathatóak egymás után.
		# Pl.: cp -R /var/www /home/backup && shutdown -h now

Dedikált környezeti változók

	
	EDITOR	: Az alapértelmezett szövegszerkesztő
	HOME 	: Aktuális felhasználói könvvtár elérési útvonala
	MAIL 	: Beérkező emailek alapértelmezett könyvtára
	PATH 	: Azok az elérési útvonalak, melyekben a shell futtatható állományokat keres
	OSTYPE 	: Az operációs rendszer típusa
	PAGER 	: Az alapértelmezett file nézegető elérési útvonalát kell tartalmaznia
	PWD 	: Az éppen aktuális munkakönyvtár (Szimbólikus linknél nem egyezik meg a pwd kimenetével!)
	SHELL 	: A jelenleg futó shell teljes elérési útvonala
	TERM 	: A terminál típusát tartalmazza

Ezek értékeinek kiíratására a következő parancs használható:

echo $VALTOZO_NEV

Shell változók

Értékadó utasítással.:

	valtozo=érték : a változónk értéke legyen "ertek"
	valtozo=$(echo 2+3 | bc) : a változónk értéke legyen 2+3, bc-vel kiszámolva.
	export valtozo : shell változó környezeti változóvá alakítása
		# Amennyiben szükséges permanens beállítás, úgy:
		# az /etc/profile -ba is szükséges felvenni
		
	unset valtozo : ha már nincs szükség rá, mint környezeti változó.

Belső változók


echo $0
	# A futó program neve

echo $$
	# A futó program PID-je

echo $?
	# A legutolsó parancs visszatérési értéke
	

Csővezetékek (pipe-ok)


	# " | " segítségével lehet egy program kimenetét (stdout) egy másik program
	bemenetére (stdin) csatolni. pl.:

ps aux | grep iceweasel
	# Az összes folyamat listázásának kimenetét a grep szűrő bemenetére irányítja, amely az iceweasel-t keresi.

	# stdin  - standard input,  jele : fd0 (alapértelmezett bemenet, pl.: billentyűzet)
	# stdout - standard output, jele : fd1 (alapértelmezett kimenet, pl.: monitor)
	# stderr - standard error,  jele : fd2 (alapértelmezett hibacsatorna)

./program 2> hiba.txt
	# program lefuttatása és az esetleges hibacsatorna (stderr) hiba.txt-be irányítása
	# az stdout helyett.

./program 1> kimenet.txt 2>&1
	# program lefuttatását követően a kimenetet (stdout) a kimenet.txt be menti, valamint
	# az esetleges hibák (stederr) hozzáfűzésre kerülnek a txt-hez.

cat file1 | sort | wc -w > file2
	# file1-et tartalmát a sort-nak adja át, az rendezi, majd átadja a wc-nek, majd a wc 
	# kimenete a file2-be íródik

Néhány egyszerű példa.:


#!/bin/bash
echo Hello World!
	# A szokásos Hello World kiírása, a program futtatásakor.


#!/bin/bash
STR="Hello World"
echo $STR
	# Az STR változó deklarálása, majd értékének kiíratása.


#!/bin/bash
tar -cZf /var/backup.tgz /home/user
	# /home/user tartalmát menti és tömöríti a /var/backup-ba.


#!/bin/bash
OF= /home/user/$(date +%Y%m%d).tgz
tar -cZf $OF /home/user/sajt
	# Egyszerű backup script, mely a /hme/user/sajt tartalmát, napi dátummal
	# ellátva egy .tgz állományba tömörítve menti.


#!/bin/bash
if ["foo" = "foo1" ]; then
	echo "a feltétel igaz"
	else
	echo "a feltétel hamis"
fi
	# Egyszerű if-else szerkezet


Egyszerű szerkezetek.: if, while, until, for

-if szerkezet.:
---------------

#!/bin/bash
	T1="foo"
	T2="bar"
	if [ "$T1" = "$T2" ]; then
	echo "a feltetel igaz"
	else
	echo "a feltetel hamis"
	fi
	# eldönti T1 és T2 értékéről, hogy egyenlőek e.


#!/bin/bash
	if [ -f /etc/passwd ]
	then
     	echo "letezik!"
	else
    	echo "nem letezik!"
	fi
	# eldönti, hogy /etc/passwd file létezik-e vagy sem.
	# Blokkos eszköz (pl. pendrive) esetén -b kapcsolót kell használni!


#!/bin/bash	
	test -f /etc/passwd && echo "letezik" || echo "nem letezik"
	# A egyel feljebb levő probléma másik megoldása.
	# Blokkos eszköz (pl. pendrive) esetén -b kapcsolót kell használni!



-File szintű kapcsolók

if [ -a file ] then ...

	-a : igaz, ha létező file
	-e : igaz, ha létező file
	-b : igaz, ha blokkos eszköz (pl /dev/sda)
	-c : igaz, ha "karakterspeciális" file Pl.: (/dev/ttyACM0 - ez egy nokia telefon.)
	-d : igaz, ha könyvtár
	-f : igaz, ha regular file
	-G : igaz, ha a futtató user csoportjáé a file
	-N : igaz, ha módosították az utolsó olvasás óta
	-O : igaz, ha a futtató useré a file
	-r : igaz, ha olvasható?
	-L : igaz, ha symbolic link
	-s : igaz, hogy nem üres
	-z : igaz, hogy üres
	-w : igaz, ha írható a scriptet futtató user számára
	
	# Tagadás mindenhol használható, azaz.:
	! -f : nem regular file?
	


-Változó szintű kapcsolók

if [ file == file2 ] then ...

	file1 == file2	egyenlőek?
	file1 != file2	igaz hogy nem egyenlőek?
	
	  if [ "$(cat tibi)" != "$(cat peti)" ]; then
  	    echo "Tibi nem Peti! :)"
  	    exit 1 # Stop!
	  fi 


-Szám szintű kapcsolók

if [ $foo -eq 3 ] then ... 

	$foo -eq 3 : igaz, ha foo értéke egyenlő 3-al (equal)
	$foo -ne 3 : igaz, ha foo értéke nem egyenlő 3-al (not-equal)
	$foo -gt 3 : igaz, ha foo értéke nagyobb 3-nál (greater than)
	$foo -ge 3 : igaz, ha foo értéke nagyobb egyenlő 3-al (Greater or equal) 
	$foo -lt 3 : igaz, ha foo értéke kisebb 3-nál (Less than)
	$foo -le 3 : igaz, ha foo értéke kisebb egyenlő 3-al (less than or equal)

	"$foo" == "10"	foo értéke 10?


	# Dupla zárójellel használhatóak ==, !=, >=, >, <, <=..
	(($foo <= 3))	foo értéke nagyobb egyenlő 3-nál


 
-while szerkezet.:
------------------

#!/bin/bash
	COUNTER=0
	while [ $COUNTER -lt 10 ]; do
		echo a szamlalo erteke: $COUNTER
		let COUNTER=COUNTER+1
	done	
	# COUNTER változót 1-el növeli addíg, amíg el nem éri a 10-et.



-until szerkezet.:
------------------

#!/bin/bash
	COUNTER=20
	until [ $COUNTER -lt 10 ]; do
		echo a szamlalo erteke: $COUNTER
		let COUNTER-=1
	done
	# COUNTER változót 20-as kezdőértékről 1-el csökkenti, amíg el nem éri a 10-et.



-for ciklus (C szerű)
---------------------

#!/bin/bash
	for i in `seq 1 10`;do
	echo $1
	done
	# az i változó felveszi 1-től 10-ig az értékeket, majd ki is írja a képernyőre



-for ciklus (a könyvtár elemeire)
---------------------------------

#!/bin/bash
	for i in $( ls );do
	echo a konyvtar elemei: $i
	done
	# kiírja a képernyőre az aktuális könyvtár elemeit



Egyszerű függvények.:

#!/bin/bash
	function quit {
		exit
	}
	function hello {
		echo Hello!
	}
	hello
	quit
	echo foo
	# Egyszerű fv. deklarálás, majd az értékek kiíratása ( a 10. sor sosem fut le!)

#!/bin/bash
	function quit {
		exit
	}
	function e {
		echo $1
	}
	e Hello
	e World
	quit
	echo foo
	# Egyszerű fv. deklarálás, majd az értékek kiíratása ( a 11. sor sosem fut le!)




Érdekes/hasznos bash scriptek -experimental-       top


echo "Most `w -h | wc -l` felhasználó van bejelentkezve."
	# Kiírja, hogy hány felhasználó van bejelentkezve



test -d /home/user && echo "van" || echo "nincs"
	# Megvizsgálja, hogy van e /home/user könyvtár, két kimenetű elágazással (&&)
	# Ha van.: van
	# Ha nincs.: nincs	
	# -d : van-e ilyen?



if [ -d /home/user ]; then echo "van"; else echo "nincs";
fi
	# Ugyanaz mint az előző példa, csak kicsit másként. 
	# [-test parancs, ]-test zárás



if [ -s /etc/motd ]; then echo "nagyobb"; else echo "zerus";
fi
	# Megvizsgálja, hogy a /etc/motd nagyobb e nullánál, vagy zérus.
	# -s akkor ad IGAZ-at, ha a fájl létezik és nagyobb 0-nál.


for i in *.mp3; do mpg123 "$i"; done
	# Az aktuális könyvtárban az összes mp3 kiterjesztésű állományt, az mpg123 
	# nevű programmal lejátszuk.



< /dev/urandom tr -dc A-Za-z0-9_ | head -c8
	# 8 karakteres random jelszó generátor 



for i in $(ls); do cat $i >> 123.txt; done
	# aktuális könyvtárban található file-ok 123.txt file-ba összefűzése.



host -t mx mydomain.com
nslookup -q=mx mydomain.com
dig -t mx mydomain.com
	# MX record check-re használható parancsok


net rpc shutdown -I IP -U DOMAIN/user
	# shell-ből Windows klienst állíthatunk le távolról. (ha tudjuk a local admin jelszavát..)



net rpc shutdown -I IP -U DOMAIN/user -f -t 60
	# Előbbi parancs, időzítve 60sec-re.



echo tartalom | mailsend -to sendto@domain.dom -from from@domain.dom -starttls 
  -port 587 -auth -smtp STMP.server.address -sub targy +cc +bc -v -user Username -pass Password
	# 587-es porton (TLS) levélküldés. A fenti változók jelentései:
	#
	# tartalom		: az levél tartalma 
	# sendto@domain.dom	: címzett
	# from@domain.dom	: feladó
	# SMTP.server.address	: milyen SMTP-n keresztül
	# targy			: az üzenet tárgya
	# user/pass		: SMTP user neve, jelszava.




File-ban egymás alá felsorolt számok összegének kiszámítása
---------------------------------

awk '{ sum += $1 } END { print sum }' file

paste -sd+ file | bc
	
sum=0;for i in $(cat file);do sum=$((sum+$i));done;echo $sum

s=0;while read l; do s=$((s+$l));done





Egyéb programok       top

abook
	# Address book.

antiword
	# Microsoft .DOC nézegető

amsn
	# MSN kliens (GUI)

acpi
	# ACPI eszközök információi

acpid
	# acpi program démonja

audacious
	# xmms utód, grafikus felületre mp3 lejátszó program

bitchx
	# IRC kliens (TUI) -volt-

badblocks
	# Lemez ellenőrző (Bad sectorokat keres)
	-o file_nev : a hibás sectorokat a file_nev állományba menti
	
cal
	# Szöveges naptár
	-y : az aktuális év teljes naptárát mutatja meg

clamav
	# víruskereső szoftver

clear
	# Törli a képernyőt

dict
	# Szótár program
	opendict
	dict-freedict-hun-eng : magyar-angol
	dict-freedict-eng-hun : angol-magyar

elinks
	# Konzolos böngésző.

false
	# Nem csinál semmit, sikertelenül. (1-es visszatérési értékkel)

finch
	# Konzolos Instant messenger, pidgin, ..

firestarter
	# Tűzfal konfiguráló

fsck	
	# Filesystem check.
	# Lemez-ellenőrző (helytelen leállítás után autómatikusan lefut.)
	# A helyre nem hozott állományokat a lost+found könyvtárba teszi.

fwbuilder
	# Tűzfal beállító

gaim
	# MSN, irc, etc, kliens
	
gpg -c file
	# Fájl titkosítása (OpenPGP)

gpg file
	# Fájl kititkosítása

gparted
	# Lemez partícionáló

hdparm 
	# Merevlemes információk
	-i /dev/hdx : Merevlemezünkről ad információt
	-Tt /dev/hdx : Sebességmérő eszköz

hddtemp /dev/hdx 
	# Lemez hőmérséklet figyelő

irssi
	# IRC kliens program, konzolos felületre.

k3b
	# KDE alapú cd-dvd író program (GUI)

kopete
	# MSN kliens

lynx
	# Konzolos böngésző

mbmon
	# Motherboard monitoring

memtest86
	# Memória tesztelő alkalmazás

mp3blaster
	# Konzolos mp3 lejátszó, tracklist support-al.

mplayer
	# Média lejátszó

mutt
	# Konzolos levelező kliens

qemu
	# Processzor emulátor

setterm
	# Konzol beállításai

tpconfig
	# Touchpad konfiguráló

tpctl
	# IBM ThinkPad hardver konfiguráló

true
	# Nem csinál semmit, sikeresen. (0-ás visszatérési értékkel)

thosutils
	# Toshiba laptop programok

reset
	# Visszaállítja a konzol beállításait

vlc
	# Média lejátszó

xchat
	# IRC kliens (GUI)
	
xmms
	# Audió lejátszó program
	
xmms-liveice
	# Audió kimenetet küldi a southcast-nek 

xdpyinfo
	# X kiszolgáló információk
	
yes > file
	# Csupa y-t ír a file-ba, elég gyorsan. :)

zgv
	# Konzolos képznézegető




mdadm - RAID alapok       top

Az mdadm (multiple  devices) a Linux eszköze a tömbök (RAID) létrehozására, kezelésére, monitorozására.
Ezen eszközzel sotfware-es RAID alakítható ki, hardware-es RAID vezérlővel rendelkező rendszeren az alábbi leírás nem alkalmazható.
Ebben a fejezetben tárgyalt parancsokat virtuális környezetben teszteltem, éles adatokat és rendszer lemezt/partíciót mellőzve. 

A dokumentum tartalma

	Linkek
	Gyakorláshoz szükséges feltételek
	Az mdadm 7 üzemmódja
	Lemezek előkészítése
	RAID tömbök létrehozása
	  Linear - JBOD
	  RAID0  - Stripe
	  RAID1  - Mirror 
	  RAID5  - Stripe set with parity 
	  RAID10 - Striped mirrors

	RAID config mentés, tömbök formázása, fs beállítása, mount point
	Növelés (Grow), csökkentés, leállítás, törlés 
	Monitorozás, email küldés
	RAID1 meghibásodás szimulálása hot-spare lemezzel
	RAID10 tesztelés 2 hibás lemezzel

Linkek:

RAID szintek - Wikipedia
mdadm - unixlinux.tmit.bme.hu
mdadm - Wikipedia - eng

Gyakorláshoz szükséges feltételek

	Fenti RAID szintek link tartalmának ismerete
	Linux-ot futtató PC, 1db rendszer és minimum 2db RAID gyakorláskoz használható lemezzel. 
 	  VAGY
	Virtuális környezetben futtatott Linux VM, 1 + min.2db virtuális lemezzel. pl: Windows-on VMware Player free
	Türelem, Pizza, koffeines ital (copyright by raid.wiki.kernel.org)

Az mdadm 7 üzemmódja

	Assemble 	: Egy korábban létrehozott tömböt alakít át aktívvá (láthatóvá)
	Build 		: Szuperblokkmentes tömb összeállítása. Ilyenkor az első létrehozás és a későbbi újbóli 
			  elindítás ugyanaz a művelet 
	Create 		: Új (szuperblokkos) tömb létrehozása 
	Follow/Monitor  : A megadott tömbök állapotát figyeli, reagál a változásokra . Csak redundánds 
			  tömbökre van értelme , pl RAID1, RAID5
	Grow 		: Újracsíkozás. pl növelés, csökkentés, diszk szám növelés, chunk méret változtatás, 
			  áttérés RAID1->RAID5 
	Manage 		: Kezelés. pl eszköz hozzáadása tömbhöz, kiszedése, hibásnak jelölése, spare hozzáadása...
	Misc 		: Egyéb. pl RAID szuperblokk törlése, információkérés. Adott tömbböl egy lemez végleges 
			  eltávolításához szükséges a szuperblokkot törölni.

Lemezek előkészítése

	Ahhoz, hogy a lemezek RAID tömbbe helyezhetőek legyenek, szükséges előkészíteni az eszközök partíciós tábláit.
	Ez többek között az alábbi két módszerrel valósítható meg:

fdisk /dev/sdb
	# /dev/sdb eszköz 1.partíciójának felkészítése
	# A gombok lenyomásának sorrendje a következő
	
	m  		: manual
	t  		: partíció rendszer id változtatása	
	1  		: első partíció
	L  		: listázás
	fd 		: Linux Raid Autodetect filerendszer (ezt be kell gépelni!)
	w  		: kiírás.

	# Fenti parancsot az aktuális rendszerhez kell igazítani, és minden érintett eszközön le kell futtatni.
	# Lemez elnevezések és partíció számok sdb1 !

 VAGY

cfdisk /dev/sdb
	# formázatlan HDD esetén:
	
	Label type	: dos
	New		: méretezés igény szerint
	Primary/Ext.	: Elsődleges vagy Kiterjesztett. Logikai partíció csak kiterjesztett alá készíthető.
	Type		: fd - Raid autodetect
	Write		: változások kiírása.

	# Fenti folyamatot szintén minden érintett lemezen szükséges elvégezni.


RAID tömbök létrehozása

Linear vagy JBOD (just a bunch of disks/drives)

	-Több különböző (vagy akár azonos) lemez (vagy partíció) 1db nagy dinamikus lemezzé konvertálása
	-Sebességben nincs különbség egy szimpla lemezhez képest.
	-Elérhető maximális méret: a résztvevő hdd-k vagy partíciók összege
	-Hibatűrés nincs! Bármely lemez kiesése esetén szétesik a tömb

mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb3 /dev/sdc4
	# create	  :létrehozás
	# verbose	  :bőveszédű
	# /dev/md0	  :/dev/md0 lesz a tömb device
	# --level= 	  :RAID típusa linear
	# --raid-devices= :tömbbe kerülő eszközök száma
	# /dev/sdb3, sdc4 :a résztvevő lemezek partíciói



RAID0 - Stripe 
	
       	-Stripe, vagyis csíkozás. A résztvevők között az adat annyi egyenlő részre lesz szétosztva, 
	 ahány résztvevő van, így minden lemezre az adat egy darabja kerül.
	-Sebesség: Az írás/olvasás párhuzamosan történik -> Gyors
	-Elérhető maximális méret: a résztvevő legkisebb hdd vagy partíció mérete. 
	 erősen ajánlott azonos típusú lemezeket használni. 
	-Hibatűrés nincs! Bármely lemez kiesése esetén szétesik a tömb.

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1 
	# 2 eszközöből álló RAID0 tömb létrehozása



RAID1 - Mirror 
	
	-Tükrözés 2 vagy több lemez között. 
	 a résztvevő hdd-kre vagy partíciókra az adat 1-1 példányban kerül írásra. Pazarló helykihasználtság!
	-Sebesség: Olvasás ideálsi esetben kétszerese egy szimpla HDD-nek. Írásban minimális a növekedés.
	-Elérhető maximális méret: a résztvevő legkisebb hdd vagy partíció mérete. 
	 ajánlott azonos típusú lemezeket használni.
	-Hibatűrés van! 1db lemez kiesése esetén a tömb ép marad, adat írható/olvasható.

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing 
	# /dev/sdb1 lemezzel Degraded (féllábú) tömb létrehozása. A hiányzó eszköz helyére missing kell.
		
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1
	# /dev/sdb1 és sdc1 résztvevőkkel RAID1 létrehozása

mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 /dev/sdc1 --spare-devices=1 /dev/sdd1
	# md0 RAID1 tömb létrehozása 1db Spare disk-el (melegtartalék)
	# Amennyiben bármely lemez kiesik, úgy a rendszer a spare disk-et automatikusan sync-eli és átveszi
	# a hibás lemez helyét. Redundancia növekedés!



RAID5 - Stripe set with parity 
	
	-Minimum 3db, lehetőleg azonos méretű lemez szükséges RAID5 kialakításhoz. Egy adatblokk 3db lemez esetén két részre osztva
	 egy-egy lemezre íródik, (disk1-data1, disk2-data2) ezen adatok paritás értéke pedig (disk3-dataP) a harmadik lemezre kerül. 
	 a paritás egy ellenőrző összeg, melyből a CPU (vagy vezérlő) data1 VAGY data2 elvesztése esetén pótolni tudja a kiesést.
	 a RAID5 körbeforgó paritási (rotating parity) eljárást alkalmaz, nincs kitüntetett paritás lemez (pl RAID4 melyben szűk 
	 keresztmetszete lenne a rendszernek) a paritást az összes meghajtón elosztva tárolja.
	-Sebesség: párhuzamos olvasásnak köszönhetően gyors olvasás, az írás sw RAID esetén fokozottan CPU igényes!
	 kiszámítása (N-1)*S  ahol  N:résztvevő darabszám,  S:leglassabb résztvevő sebessége
	-Elérhető maximális méret kiszámítása: (N-1)*S  ahol  N:résztvevő darabszám,  S:legkisebb résztvevő mérete,
	 tehát 3db 500GB-os lemeznél 1TByte.
	-Hibatűrés van! 1db lemez kiesése esetén a tömb ép marad, adat írható/olvasható.
	
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
	# md0 RAID5 tömb létrehozása 3 lemez 1.partíciójából.

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
	# md0 RAID5 tömb létrehozása, 1db spare disk-el.



RAID10 - Striped mirrors 
	
	-Minimum 4db, lehetőleg azonos méretű lemez szükséges RAID10 (1+0)kialakításhoz. 2db (2 lemezből álló) előre létrehozott
	 RAID1 tömb kerül összefűzésre RAID0-ba. A RAID10 technológia ötvözi a RAID0 gyorsaságát a RAID1 megbízhatóságával.
	-Sebesség: párhuzamos olvasásnak és írásnak köszönhetően szimpla HDD-hez képest legalább kétszer gyorsabb.
	-Elérhető maximális méret kiszámítása: (N*S)/2  ahol  N:résztvevő darabszám,  S:legkisebb résztvevő mérete,
	 tehát 4db 500GB-os lemeznél 1TByte.
	-Hibatűrés van! Amennyiben a RAID1 tömbökből esik ki 1-1 lemez, úgy a rendszer továbbra is üzemképes marad. 
	 
mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
	# md0 RAID10 tömb létrehozása 4db lemez 1.partíciójából.
	# Tesztelés lentebb.


RAID config mentés, tömbök formázása, fs beállítása, mount point

	Amennyiben a fentiek alapján sikeresen létre lett hozva a tömb, úgy szükséges az alábbi lépéseket 
	elvégezni a config véglegesítéséhez illetve a tömb használatba vételéhez.

Példa RAID1 esetén

cat /proc/mdstat
	# az összeállított RAID tömb állapotának lekérése
	# Alábbi kimenet RAID1 config sdb1 és sdc1-el.

		Personalities : [raid1]
		md0 : active raid1 sdb1[0] sdc1[1]
		7810036 blocks super 1.2 [2/2] [UU]

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-orig
	# aktuális mdadm.conf mentése mdadm.conf-orig néven

mdadm --detail --scan >> /etc/mdadm/mdadm.conf
	# a kialakított állapot mentése az éles konfigba.

mkfs.ext3 /dev/md0
	# /dev/md0 tömb ext3 típusú fájlrendszerre formázása

mkdir /mnt/md0
	# csatolási pont létrehozása ahol el lehet majd érni a tömböt
	# helye szabadon választott.

mount /dev/md0 /mnt/md0
	# a tömb /mnt/md0 csatolási pontra mount-olás

mount
	# az előbbi mount tesztelése. Valami hasonló lesz a kimenet:
		..
		/dev/md0 on /mnt/md0 type ext3 (rw,errors=remount-ro)
	
cp /etc/fstab /etc/fstab-orig	
	# /etc/fstab mentése.
	

blkid /mnt/md0
	# Ahhoz, hogy minden újraindítás után fel legyen csatolva a tömb, bele kell írni az fstab-ba UUID alapján.
	# Az adott tömb UUID értékének kiíratása. Az fstab-ba ezen értéket szükséges felvenni, valahogy így:
		..
		UUID=ede160d0-9504-4a21-8460-add12df04b77  /mnt/md0   ext3   errors=remount-ro  0  1


mdadm --detail /dev/md0
	# md0 tömb tulajdonságok. 
	# RAID1, 1db spare disk-el valahogy így néz ki:
	      /dev/md0:
    		       Version : 1.2
  		 Creation Time : Thu Apr 19 14:37:01 2016
     		    Raid Level : raid1
     		    Array Size : 103296 (100.89 MiB 105.78 MB)
  		 Used Dev Size : 103296 (100.89 MiB 105.78 MB)
  		  Raid Devices : 2
  		 Total Devices : 3
    		   Persistence : Superblock is persistent
    		   Update Time : Thu Apr 19 19:04:01 2016
         		 State : clean
 		Active Devices : 2
	       Working Devices : 3
 		Failed Devices : 0
		.....		


	Ha minden sikerült, kész a felcsatolt RAID1 tömb.


mdadm --examine /dev/sda1
	# /dev/sda1 eszközön md superblock keresése
	# sda1 része vagy része volt-e aktív RAID tömbnek?

     Ha nem:
	  mdadm : No md superblock detected on /dev/sda1 

     Ha igen:
	/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 29473177:dcda05f4:7b158228:7c7326f1
           Name : debian830:0  (local to host debian830)
  Creation Time : Wed Apr 26 14:58:06 2016
     Raid Level : raid10
   Raid Devices : 4
	.....
	

Növelés (Grow), csökkentés, leállítás, törlés

Rövidítések
	-a	: --add
	-c	: --create
	-l1	: --level=mirror   (raid1)
	-n3	: --raid-devices=3
	-x1	: --spare-devices=1


mdadm --grow --raid-devices=3 /dev/md0
mdadm --add /dev/md0 /dev/sde1
	# Adott /dev/md0 tömbben a diszkek számának növelése 3-ra, majd /dev/sde1 hozzáadása.


mdadm --fail /dev/md0 /dev/sdc1
mdadm --remove /dev/md0 /dev/sdc1
mdadm --grow --raid-devices=2 /dev/md0
	# /dev/md0 tömbben az sdc1 résztvevő hibásnak beállítása és eltávolítása
	# ezt követően md0 tömb lemezek számának csökkentése 2-re.


mdadm --stop /dev/md0
	# md0 tömb leállítása


mdadm --stop --scan
	# az mdadm.conf -ban az összes felsorolt tömb leállítása

mdadm --remove /dev/md0
	# md0 végleges törlése, stop-ot követően

mdadm --zero-superblock /dev/sdb1
	# superblock ürítés aktuális eszközön.
	# akkor lehet szükséges, ha sdb1 korábban már RAID tömb tagja volt, de most egy új tömbbe kell felvenni.


Monitorozás, email küldés

	Az mdadm rávehető folyamatos monitorozásra is, ami egy daemont futtat a háttérben és hiba esetén riasztást küld,
	illetve ha beállításra kerül, be is tud avatkozni.
	Levélküldéshez használható kliens például ssmtp. A configjában a mailhub-hoz fel kell venni az SMTP címet 

/etc/mdadm/mdadm.conf 
	# -ba fel kell venni a címzettet, ellenkező esetben a helyi root kapja az értesítést.
	
		MAILADDR recipient@mail.com	


mdadm --monitor --scan --test -1
	# test mail kiküldése mdadm-on keresztül.
		
mdadm --monitor --daemonise --mail=recipient@mail.com --delay=30 /dev/md0
	# daemon módban futó scan 30másodpercenként, címzettet megadva.
	# delay default értéke 1800sec, én csak a teszt erejéig húztam le 30s-re

mdadm --fail /dev/md0 /dev/sdd1
	# teszt jelleggel sdd1 kivétele md0-ból:

		mdadm: set /dev/sdd1 faulty in /dev/md0

	# Alábbi levél érkezett másodpercekkel később:
	# a resync DELAYED nem releváns, mire megnéztem az mdstat-ot, addigra már kész is volt a (spare) sync, automatikusan! :)

		This is an automatically generated mail message from mdadm running on debian830
		A Fail event had been detected on md device /dev/md0.
		It could be related to component device /dev/sdd1.
		Faithfully yours, etc.
		P.S. The /proc/mdstat file currently contains the following:

		Personalities : [raid1]
		md0 : active raid1 sdc1[3] sdb1[4] sdd1[2](F)
        	103296 blocks super 1.2 [2/1] [U_]
      		resync=DELAYED
      		unused devices: 


RAID1 meghibásodás szimulálása hot-spare lemezzel

	Alábbi tesztben egy működő RAID1 tömb egyik aktív lemeze hibásodik meg úgy, hogy a tömb részét
	képezi 1db hot-spare lemez is (melegtartalék). 
	Ilyen esetben az mdadm a hibásnak ítélt lemez eltávolítását követően automatikusan becsatolja a spare lemezt, 
	és el is kezdi rászinkronizálni az adatokat.
	 

cat /proc/mdstat
	# aktuális helyzet felmérése (látható, hogy sdc1 a spare!)

		Personalities : [raid1]
		md0 : active raid1 sdc1[3](S) sdb1[0] sdd1[2]
		103296 blocks super 1.2 [2/2] [UU] unused devices:

mdadm --fail /dev/md0 /dev/sdb1
	# sdc1 hibásnak ítélése

		mdadm: set /dev/sdb1 faulty in dev/md0

cat /proc/mdstat
	# látható, hogy sdb1 Faulty, és sdc1 spare átvette a helyét.

		Personalities : [raid1]
		md0 : active raid1 sdc1[3] sdb1[0](F) sdd1[2]
		103296 blocks super 1.2 [2/2] [UU] unused devices:
	
mdadm --remove /dev/md0 /dev/sdb1	
	# sdb1 kivétele a tömbből

		mdadm: hot removed /dev/sdb1 from /dev/md0
		
cat /proc/mdstat
	# sdb1 el is tűnt.

		Personalities : [raid1]
		md0 : active raid1 sdc1[0] sdd1[2]
		103296 blocks super 1.2 [2/2] [UU] unused devices:

mdadm --add /dev/md0 /sdb1
	# sdb1 visszahelyezése a tömbbe. Ekkor a frissen behelyezett eszköz lesz a spare.

		Personalities : [raid1]
		md0 : active raid1 sdc1[3] sdb1[4](S) sdd1[2]
		103296 blocks super 1.2 [2/2] [UU] unused devices:

	

RAID10 tesztelés 2 hibás lemezzel

	Alábbi tesztben egy működő RAID10 tömbből 2db lemez esik ki, RAID1 tömbönként 1-1, melyet elméleti
	síkon még túl kellene élnie.


cat /proc/mdstat
	# Jelenlegi helyzet így néz ki.: RAID10, sdb,sdc,sdd,sde lemezek első partícióiból

		Personalities : [raid10]
		md0 : active raid10 sde1[3] sdd1[2] sdc1[1] sdb1[0]
      		204800 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]


mdadm --detail /dev/md0
	# detail információk ide vágó része:
	# Látható set-A set-B infók alapján, hogy sdb1 és sdd1 képezi az egyik RAID1-et, sdc1 sde1 a másikat.
	# A két RAID1 tömbre pedig szét van osztva egy adatblokk (A+B)  -> RAID0

	    	Number   Major   Minor   RaidDevice State
       		0       8       17        0      active sync set-A   /dev/sdb1
       		1       8       33        1      active sync set-B   /dev/sdc1
       		2       8       49        2      active sync set-A   /dev/sdd1
       		3       8       65        3      active sync set-B   /dev/sde1


ls -la /mnt/md0
	# md0 tömb becsatolva /mnt/md0-ba, teszt adattal feltöltve:

		total 124528
		drwxr-xr-x 4 root root      1024 Jan 17 16:04 .
		drwxr-xr-x 3 root root      4096 Jan 15 01:48 ..
		-rw-r--r-- 1 root root 126998528 Jan 17 16:05 123
		drwx------ 2 root root     12288 Jan 17 16:04 lost+found
		drwxr-xr-x 2 root root      1024 Jan 17 16:04 test-data


mdadm --fail /dev/md0 /dev/sdb1
mdadm --fail /dev/md0 /dev/sde1
mdadm --remove /dev/md0 /dev/sdb1
mdadm --remove /dev/md0 /dev/sde1	
	# sdb1 és sde1 résztvevők hibásnak ítélése és eltávolítása a tömbből.


cat /proc/mdstat
	# Jelenlegi helyzet:

		Personalities : [raid10]
		md0 : active raid10 sdd1[2] sdc1[1]
      		204800 blocks super 1.2 512K chunks 2 near-copies [4/2] [_UU_]


mdadm --detail /dev/md0
	# detail információk ide vágó része:

    		Number   Major   Minor   RaidDevice State
       		0       0        0        0      removed
       		1       8       33        1      active sync set-B   /dev/sdc1
       		2       8       49        2      active sync set-A   /dev/sdd1
       		6       0        0        6      removed


ls -la /mnt/md0
	# Volia! /mnt/md0-ba felcsatolt degraded tömb még mindig él, 2 hibás lemezzel.
	
		total 124528
		drwxr-xr-x 4 root root      1024 Jan 17 16:04 .
		drwxr-xr-x 3 root root      4096 Jan 15 01:48 ..
		-rw-r--r-- 1 root root 126998528 Jan 17 16:05 123
		drwx------ 2 root root     12288 Jan 17 16:04 lost+found
		drwxr-xr-x 2 root root      1024 Jan 17 16:04 test-data
	

	
	A fenti RAID10 tömb képes túlélni két lemez kiesést abban az esetben, ha set-A és set-B lemezekből
	legalább 1-1 darab épen marad. Amit nem képes elviselni, ha 2db set-A vagy 2db set-B esik ki. Egész jó nem?
	Ha a tömb részét képezte volna 2db hot spare lemez, úgy a faulty-remove művelet után azonnal munkába is
	álltak volna, beavatkozás nélkül. 




RAID1 készítése élő rendszeren       top

Linux software RAID 1 készítése, élő Debian/GNU Linux (Etch) rendszeren

	Az alábbi leírást mindenki csak saját felelősségére használja! 
 	A folyamat elindítása előtt javasolt biztonsági mentést készíteni az adatokról,
	hiszen bármely elütés, figyelmetlenség következtében az adatok elveszhetnek!


RAID technológiáról bővebben.:
------------------------------ 
RAID Wikipedia
Software RAID Linux alatt
mdadm Wikipedia - eng

 
/dev/sda - élő rendszerem lemeze
/dev/sdb - a majdani RAID1 másik lába.


	# Az én élő rendszerem partíciói.: (nálad ez valószínűleg egészen más)  
	# A lemez/partíció elnevezéseket saját rendszeredhez kell igazítani. Csak megfontoltan.
	#
	# Eszököz     csatolási pont   file rendszer      
	# ------------------------------------------       
	# /dev/sda1:  /boot            ext3
	# /dev/sda2:                   swap
	# /dev/sda3:  / 	       ext3


	# A procedúra végén (az én esetemben) ilyen felállást szeretnék elérni.:
	#
	# Eszököz     csatolási pont   file rendszer    résztvevők
	#  --------------------------------------------------------
	# /dev/md0:   /boot            ext3 	        (/dev/sda1 és /dev/sdb1-ből)
	# /dev/md1:                    swap		(/dev/sda2 és /dev/sdb2-ből)	
	# /dev/md2:   /                ext3		(/dev/sda3 és /dev/sdb3-ból)



apt-get install initramfs-tools mdadm
	# Két szükséges csomag telepítése, mdadm kérdésénél érdemes ALL-t választani.


modprobe md
modprobe linear
modprobe multipath
modprobe raid0
modprobe raid1
modprobe raid5
modprobe raid10
	# Töltsük be az összes modult.


sfdisk -d /dev/sda | sfdisk /dev/sdb
	# /dev/sda lemezünk partíciós tábláját /dev/sdb lemezünkre másoljuk!


fdisk -l
	# Ellenőrizzük le, hogy valóban sikerült-e.


fdisk /dev/sdb
	# Készítsük el a file rendszereket a partíciókra.
	# A gombok lenyomásának sorrendje a következő.:
	m  : manual
	t  : partíció rendszer id változtatása	
	1  : első partíció
	L  : listázás
	fd : Linux Raid Autodetect filerendszer (ezt be kell gépelni!)
	t  : ..
	2  : második partíció
	fd : .. 
	t  : ..
	3  : harmadik partíció
	fd : ..
	w  : kiírás.


# Ha már korábban próbálkoztunk RAID építésével a /dev/sdb lemezzel, az alábbi parancsokat adjuk ki.

mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2
mdadm --zero-superblock /dev/sdb3
	# Error-al elszállhat a dolog, de ez nem ad okot aggodalomra.
	

# Most pedig hozzuk létre a "féllábú" (degraded) tömbünket a /dev/sdb lemezre. 
# Mivel a rendszer jelenleg a /dev/sda lemezről fut, egyelőre azt nem tudjuk a tömbhöz adni, csak utólag.

mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2
mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3


cat /proc/mdstat
	# Ellenőrizzük le, hogy sikerült-e 
	# [_U] jelzi hogy jelenleg féllábú a tömbünk (sdb)


mkfs.ext3 /dev/md0
mkswap /dev/md1
mkfs.ext3 /dev/md2
	# Hozzuk létre a file rendszereket a tömbökre.
	

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
	# Mentés készítése az mdadm.conf-ról
	# Az új "helyzet" elmentése az mdadm.conf-ba.

mkdir /mnt/md0
mkdir /mnt/md2
	# md0, md2 mappák létrehozása, ahova majd felmountoljuk a tömböket.

mount /dev/md0 /mnt/md0
mount /dev/md2 /mnt/md2
	# Mountoljunk!.

mount
	# Az utolsó sorokban leellenőrizhetjük, hogy sikerült-e a csatolás

cp /etc/fstab /etc/fstab-orig
	# fstab-ról backup készítése

mcedit /etc/fstab
	# Az fstab-ban cseréljük ki a következőket.:
	/dev/sda1	/dev/md0 -ra 
	/dev/sda2	/dev/md1 -ra 
	/dev/sda3	/dev/md2 -ra 
	# Majd mentsünk rá a configra.


cp /etc/mtab /etc/mtab-orig
	# mtab-ról backup készítése

mcedit /etc/mtab
	# Az mtab-ban cseréljük ki a következőket.:
	/dev/sda1	/dev/md0 -ra 
	/dev/sda3	/dev/md2 -ra 
	# Majd mentsünk rá a configra.

Figyelem!

Amennyiben már Grub2-vel rendelkezünk, az alábbi linkről állítsuk be a bootloadert .: Link

Egyébiránt mehetünk tovább.

cp /boot/grub/menu.lst /boot/grub/menu.lst-orig
	# menu.lst mentése.


mcedit /boot/grub/menu.lst
	# Az alábbi változtatásokat állítsuk be.:
		
		[...]
		default         0
		fallback        1
		[...]
		

	# A config végén készítsünk az első (title-savedefault közötti) részről egy új bekezdést.
	# valamint, a /dev/sda3 -at cseréljük /dev/md2 re
	# a root (hd0,0) -t (hd1,0)-ra. (Ha különbözőek a lemezeid elnevezése, itt is légy körültekintő!)
	# valahogy így.:

		## ## End Default Options ##

		title           Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd1)
		root            (hd1,0)
		kernel          /vmlinuz-2.6.18-4-486 root=/dev/md2 ro
		initrd          /initrd.img-2.6.18-4-486
		savedefault
		

update-initramfs -u
	# Ramdisk frissítése.


cp -dpRx / /mnt/md2
	# Másoljuk a /dev/sda3 tartalmát /mnt/md2-re (Aminek egyelőre csak /dev/sdb3 része.)


cd /boot
cp -dpRx . /mnt/md0
	# Másoljuk a /dev/sda1 tartalmát /mnt/md0-ra (Aminek egyelőre csak /devb/sdb1 része.)


grub
root (hd0,0)
setup (hd0)
root (hd1,0)
setup (hd1)
quit
	# Telepítsük a grub-ot a második lemezünkre.
	# A következő indításkor, ha minden sikeres volt, már a második HDD-ről indul a rendszerünk!
	# azaz neki állhatunk majd a /dev/sda lemez RAID-be állításához!

reboot
	# Restartoljunk.

df -h
cat /proc/mdstat
	# Ellenőrizzük le ismét, hogy áll a tömbünk.

fdisk /dev/sda
	# hozzuk létre a Linux Raid Autodetect file rendszereket a partícióinkra az alábbi billentyűkkel.:
	t 1 fd , t 2 fd,  t 3 fd , w


mdadm --add /dev/md0 /dev/sda1
mdadm --add /dev/md1 /dev/sda2
mdadm --add /dev/md2 /dev/sda3
	# Adjuk hozzá a féllábú (sdb-n álló) tömbünkhöz a /dev/sda partícióit.

cat /proc/mdstat
	# Ellenőrizzük le, hogy szinkronizálódnak-e a lemezeink.
	# Ilyesmit kellene látnunk.:
		
	
		Personalities : [raid1]
		md2 : active raid1 sda3[2] sdb3[1]
      		4594496 blocks [2/1] [_U]
      		[=====>...............]  recovery = 29.7% 
	
	
	# Várjuk meg míg befejezi az összes partíció szinkronizálását.

watch cat /proc/mdstat
	# 2 másodperces frissítéssel figyelemmel követhezjük a file tartalmát.


cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --examine --scan >> /etc/mdadm/mdadm.conf
	# Mentés készítése az mdadm.conf-ról
	# A legújabb "helyzet" elmentése az mdadm.conf-ba.


mcedit /boot/grub/menu.lst

	# Másoljuk le a korábban létrehozott kernel stanza-t és cseréljük
	# a (hd1,0) -t hd(0,0) -ra. 
	# Ez a te esetedben ismét más lehet!

		## ## End Default Options ##

		title           Debian GNU/Linux, kernel 2.6.18-4-486 RAID (hd0)
		root            (hd0,0)
		kernel          /vmlinuz-2.6.18-4-486 root=/dev/md2 ro
		initrd          /initrd.img-2.6.18-4-486
		savedefault	
		 	
	# valamint szerkesszük az alábbi sort eszerint, majd mentsük a file-t.:
		[...]
		# kopt=root=/dev/md2 ro
		[...]
		

update-initramfs -u	
	# Ramdisk frissítése

reboot

	# ha mindent jól tettünk, a RAID1-ünk aktív, és használható.
 
Forrás .: Howtoforge


# Hamarosan: 
# 
# Elhasalt/elromlott HDD cseréje élő RAID1 alatt.





Adatmentés sw. RAID1-et alkotó HDD-ről       top

Előfordulhat, hogy Linux alatt létrehozott sw. RAID1 kötetet alkotó HDD-t egy másik gépben szeretnénk menteni.
Alábbi leírás ehhez a procedúrához nyújt segítséget. (a dev. elnevezések nálad egészen mások lehetnek!)


dmesg |grep Attached
	# Mi az újonnan behelyezett disk neve?
	# Pl.:

		[    2.628336] sd 1:0:0:0: [sdb] Attached SCSI disk
		[    2.629248] sd 0:0:0:0: [sda] Attached SCSI disk
		[    2.644424] sd 2:0:0:0: [sdc] Attached SCSI disk
	

fdisk -l /dev/sdc
	# Milyen file rendszerrel rendelkezik a /dev/sdc?
	# Valami ilyesmit kellene látnunk.:

      		Device Boot  Start   End     Blocks      Id  System
		/dev/sdc1    1       243202  1953513472  fd  Linux raid autodetect

mdadm --examine /dev/sdc1
	# újabb ellenőrzés, a HDD sdc1 partícióját illetően. A RAID partícióra vonatkozik!

mkdir /mnt/raid1
	# hozzunk létre egy csatolási pontot a RAID1-et alkotó HDD-nek.

mdadm -A -R /dev/md9 /dev/sdc1
	# Hozzunk létre egy (még nem létező!) md9 nevű féllábú tömböt, melyet /dev/sdc1 alkot. 
	# Amennyiben sikeres, ilyesmit kellene látnunk:

		mdadm: /dev/md9 has been started with 1 drive (out of 2).

mount /dev/md9 /mnt/raid1
	# csatoljuk a féllábú tömböt /mnt/raid1 mappába.
	# a HDD-n található adatokat mostantól el tudjuk érni.

Ha már nincs rá szükség.:

umount /dev/md9
	# a tömb lecsatolása a file-rendszerből.

mdadm -S /dev/md9
	# Az ideiglenes RAID tömb leállítása

Ha a RAID1-et alkotó HDD-t szükséges visszahelyezni eredeti helyére a RAID tömbbe:

(dev és md elnevezésekre kiemelt figyelmet fordítva)

mdadm -a /dev/md0 /dev/sdc1
	# md0 tömbhöz /dev/sdc1 partíció hozzáadása
	# Ha sikeres volt:

		mdadm: re-added /dev/sdc1

cat /proc/mdstat
	# tömb állapotának ellenőrzése
	# Kimenet:

		Personalities : [raid1]
		md0 : active raid1 sdb1[1] sdc1[0]
     		1953512312 blocks super 1.2 [2/1] [U_]
      		[=======>.............]  recovery = 36.9% (721315776/1953512312) finish=154.1min speed=133211K/sec 


	# A fenti kivastagított sor jelzi, hogy egyelőre még féllábú (degraded) a tömb. 
	# Ha a sync lefutott, [UU] lesz látható.







Local repository készítése apt-mirror segítségével       top



A cél egy saját repository készítése a lokális hálózaton figyelő gépek számára (http-n), az internetes 
forgalom csökkentésének érdekében. Magyarán a teljes tartalmat (2011.10. hóban: ~70Gb.) letöltjük egyszer, 
a későbbiekben pedig csak frissítenünk kell, ezt a /etc/cron.d/apt-mirror kikommentelésével 
érhetjük el.


apt-get install apt-mirror apache2
	# A majdani tároló-gépünkön kell telepítenünk.
	# Mivel http-n fogjuk elérni a repo.-t, ezért egy web server alkalmazást is telepítünk.


mcedit /etc/apt/mirror.list
	# Állítsuk át az alábbi címekre.: (innen fogja a "server" összeszedni az adatot)

		deb http://ftp.hu.debian.org/debian squeeze main contrib non-free
		deb-src http://ftp.hu.debian.org/debian squeeze main contrib non-free
		deb http://security.debian.org/debian squeeze/updates main contrib non-free
		deb-src http://security.debian.org/debian squeeze/updates main contrib non-free

		clean http://ftp.hu.debian.org/debian
		clean http://security.debian.org 
		

------------------------------------------------	
Az alábbi parancsot érdemes éjszakára ütemezni.:
------------------------------------------------

su - apt-mirror -c apt-mirror
	# Most pedig töltsük le a csomagokat, az alapértelmezésben beállított helyre (mirror.list ben van a config.)
	# Ha kész a letöltés, a /var/spool/apt-mirror/mirror/ftp.hu.debian.org/debian alatt ott lesznek a fájlok.



/bin/bash /var/spool/apt-mirror/var/clean.sh
	# Fölösleg pucolása


ln -s /var/spool/apt-mirror/mirror/ftp.hu.debian.org/debian /var/www/debian
ln -s /var/spool/apt-mirror/mirror/security.debian.org/ /var/www/security
	# Két symlinket kell létrehoznunk, hogy a kliensek be tudják frissíteni csomaglistájukat
	

Majd a kliens oldalon a sources.list-et kell editálni.:

		deb http://SZERVERUNK_CIME/debian squeeze main contrib non-free
		deb-src http://SZERVERUNK_CIME/debian squeeze main contrib non-free
		deb http://SZERVERUNK_CIME debian squeeze/updates main contrib non-free
		deb-src http://SZERVERUNK_CIME/debian squeeze/updates main contrib non-free
		
apt-get update
apt-get upgrade
	# Kliens oldali tesztelés.






Távoli mappák felcsatolása SSHFS használatával       top

Ezen leírás bemutatja távoli mappák biztonságos felcsatolásának módját a helyi fájlrendszerbe SSHFS (Secure Shell FileSystem)
segítségével. A felcsatolás FUSE-on (Filesystem in Userspace) keresztül valósul meg.


apt-get install sshfs
	# A kliensre szükséges telepíteni az SSHFS csomagot, ahova felcsatolásra kerül a távoli mappa.
	# A szerverre természetesen szükséges SSH szervert is telepíteni.

lsmod |grep fuse
	# Kliens oldalon szükség lesz a fuse nevű kernel modulra is, szóval ellenőrizzük. Üres kimenet esetén nincs betöltődve!

apt-get install fuse-utils
	# Amennyiben a fenti modul hiányzik, a fuse-utils csomag telepítésével pótolni szükséges. 

useradd sshbackup
	# A szerveren az sshbackup felhasználó létrehozása. Az ő nevében jelentkezünk be SSH-n keresztül a kliensről.

passwd sshbackup
	# Jelszó beállítása sshbackup felhasználónak.

gpasswd -a sshbackup dirgroup
	# A távoli mappához szükséges a távoli sshbackup usernek hozzáférnie. Ezt szerver oldalon tisztázni kell. 
	# Egy példa.:
	# sshbackup user hozzáadása a dirgroup csoporthoz, melynek jogosultsága van (vagy lesz) a távoli mappához.
	# Ez természetesen kikerülhető, amennyiben a felcsatolandó mappa tulajdonosa már az sshbackup user.


sshfs -o idmap=user -p 22 sshbackup@192.168.1.1:/home/sshbackup /home/user/sshbackuplink
	
	# sshbackup nevében felcsatoljuk a távoli szerver (192.168.1.1) /home/sshbackup mappáját, tcp22-es portot használva. 
	# A csatolási pont a helyi fájlrendszerben /home/user/sshbackuplink mappa lesz.

mount
	# Bizonyosodjunk meg a kliensen a mount-olás sikerességéről. Valami ilyesmit kellene látnunk.:

		sshbackup@192.168.1.1:/home/sshbackup on /home/user/sshbackuplink type fuse.sshfs (rw,nosuid,nodev,max_read=65536) 

df --si
	# Megbizonyosodás2

		sshbackup@192.168.1.1:/home/sshbackup
		... 	

fusermount -u /home/user/sshbackuplink
	# Lecsatolás


Forrás .:  Howtoforge 





Hasznos linkek       top

HUN
A nagy Linux topic - PH
Bash programozás
Debian - Felhasználói dokumentáció
Debian - Biztonság - PH! (The DJ)
DNS Howto
DNS Wiki
DRBD + Heartbeat
Hálózati programozás - Beej
Hungarian Unix Portal
IPv6 topic - HUP
Linux alkalmazások - prog.hu
Samba beállítása - hogyan.org
Shell-programozás
Squid - prog.hu
Szabilinux
TLDP - Magyar Linux Dokumentációs Project
Tűzfal tervezése, kezdőknek - budacsik - hogyan.org

ENG
Advanced Bash-Scripting Guide
Bash programming
Debian Reference - debian.org
Explain Shell!
Swiss Army Knife Internet Tool



© 2008-2016 Copyright letix



Ha a Föld hozzánk szólna, biztos megkérne minket arra...

... hogy ne terheljük Őt feleslegesen. A háztartások elektromos energia fogyasztásának átlagosan 10 százaléka készenléti állapotban (standby mode) hagyott berendezésektől származik (Energy Saving Electronics), tehát feleslegesen megy el energia, feleslegesen szennyezzük a környezetet és feleslegesen adunk ki pénzt.

Kapcsold ki teljesen készülékeidet, így Te is tehetsz egy keveset a Földért - és pénzt is spórolhatsz a villanyszámlán...