2018. február 19., hétfő

Html szerkezeti felépítése

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
<html lang="hu">

<head>


<META HTTP-EQUIV="Content-Type" Content="text/html; Charset=iso-8859-2">
<META HTTP-EQUIV="Content-Language" Content="hu">
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>
A weboldal címét ne felejtsük ki!</title>
 

<link rel="shortcut icon" href="/favicon.ico">
 
</head>

<body>

<PRE>
 <B>Jel  Hogy írjuk? Jel neve</B>
 &lt;    &amp;lt;        kisebb
 &gt;    &amp;gt;        nagyobb
 &amp;    &amp;amp;       "at"-jel
      &amp;nbsp;      helyköz
 &aacute;    &amp;aacute;    a'
 &Aacute;    &amp;Aacute;    A'
 &iacute;    &amp;iacute;    i'
 &uacute;    &amp;uacute;    u'
 &otilde;    &amp;otilde;    o"
 &ocirc;    &amp;ocirc;     o^
 &ucirc;    &amp;ucirc;     u^
 &Ouml;    &amp;Ouml;      O<SUP>..</SUP>
 &#223;    &amp;#223;      scharfes s
 &#251;    &amp;#251;      u"
 &#134;    &amp;#134;      kereszt
 &#137;    &amp;#137;      ezrelék
 &#167;    &amp;#167;      paragrafus
 &#169;    &amp;#169;      copyright
 &#176;    &amp;#176;      fok
 &#187;    &amp;#187;      kettős nagyobb
 &#171;    &amp;#171;      kettős kisebb
 &#177;    &amp;#177;      +-</PRE>
 
<B>HREF=lapok/szinek.htm</B> 
 
<FONT COLOR=yellow>
 <IMG SRC="kdelihid.jpg" ALIGN=left
  HSPACE=10 VSPACE=10 BORDER=1>
 </FONT>
 
<P ALIGN=right>A html lap "BODY" sorában
 "BACKGROUND=képfájlnév" formában
 háttérképet adhatunk meg. Ha emellett
 még a "BGPROPERTIES=fixed" paramétert
 is beírjuk a sorba, akkor egyes
 böngészők a html lap scrollozása
 közben nem mozgatják a hátteret.
 <P ALIGN=justify>
 
 
<IMG SRC=elte12.jpg USEMAP=#eltemap
      BORDER=2 ALIGN=right HSPACE=10>
 <MAP NAME=eltemap>
  <AREA SHAPE="rect"
        COORDS="27,141,40,179"
        HREF=eltei.jpg
        ALT="Informatikai épület">
  <AREA SHAPE="circle"
        COORDS="87,58,5" HREF=eltef.jpg
        ALT="Központi épület">
  <AREA SHAPE="default" HREF=xy.htm
        ALT="Javascriptes koordináták">
 </MAP>
 
<A HREF=deli.jpg> <IMG SRC="kdeli.jpg"
    ALIGN=left
    ALT="Link a képben"> </A>
 
 
az ABCDEF betűk állhatnak.)
 <CENTER>
 <P><B>Néhány példa:</B>
 <P> <FONT SIZE=1>1-es méret</FONT>
 <BR><FONT SIZE=2>2-es méret</FONT>
 <BR><FONT SIZE=3>3-as méret</FONT>
 <BR><FONT SIZE=4>4-es méret</FONT>
 <BR><FONT SIZE=5>5-ös méret</FONT>
 <BR><FONT SIZE=6>6-os méret</FONT>
 <BR><B><FONT COLOR=red>red</FONT>
     <FONT COLOR=#FF0000>= #FF0000</FONT>
 <BR><FONT COLOR=green>green</FONT>
     <FONT COLOR=#008000>= #008000</FONT>
 <BR><FONT COLOR=lime>lime</FONT>
     <FONT COLOR=#00FF00>= #00FF00</FONT>
 <BR><FONT COLOR=blue>blue</FONT>
     <FONT COLOR=#0000FF>= #0000FF</FONT>
 <BR><FONT COLOR=#ABCDEF SIZE=5>#ABCDEF
     (nincs neve)</FONT></B>
 <BR><FONT COLOR=#123456 SIZE=5>#123456
     (meg ennek sincs)</FONT></B>
 <P>A példa a "CENTER" hatását is
 mutatja.
 </CENTER>
 
 
<h1>Ez egy címsor</h1>
<h2>
Ez egy címsor</h2>
<h3>
Ez egy címsor</h3>
<h4>
Ez egy címsor</h4>
<h5>
Ez egy címsor</h5>
<h6>
Ez egy címsor</h6>
<p>Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. </p>
<p>
Ez egy másik bekezdés, két bekezdés között van egy üres sor.</p>
<p>Ez<br>egy<br>bekezdés<br>sortörésekkel.<p>
<a href="http://www.google.hu/">Ez egy link!</a>
<img src="acid2.png" width="168" height="168" alt=":-)">
!-- Ez egy megjegyzés -->
<!-- <p>Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés. Ez egy bekezdés.</p>
<p>Ez egy másik bekezdés, két bekezdés között van egy üres sor.</p> -->

<p>Csak ez a sor fog megjelenni, a fenti két megjegyzés nem, hiába tartalmaz a második érvényes HTML kódot.</p>
<p>
Tüzesen süt le a nyári nap sugára
Az ég tetejéről a juhászbojtárra.
Fölösleges dolog sütnie oly nagyon,
A juhásznak úgyis nagy melege vagyon.
</p>
<pre>
Tüzesen süt le a nyári nap sugára
    Az ég tetejéről a juhászbojtárra
        Fölösleges dolog sütnie oly nagyon,
            A juhásznak úgyis nagy melege vagyon.
Így       a        szóközöket is       megjeleníti, pont ahogyan a forráskódban írtuk.
</pre>
 
 
<p>Helló világ!</p>
 
</body>

</html>

2018. február 14., szerda

Bevált praktikák ubuntu alatt

Következzék 22 hasznos Linux parancs, melyekkel vagy megkönnyíthetjük a magunk dolgát, vagy valami más okból, de fontos dolog.
Ezek mind parancssori (terminál, konzol) parancsok, viszont nagyon sok minden egyszerűbben elvégezhető így, mint grafikus felületen.

ISO fájl készítése

A következő paranccsal egyszerűen készíthetünk bármilyen CD, DVD lemezről ISO állományt.
cat /dev/cdrom > /ahová/akarjuk/fajl.iso
A fenti parancs nem csinál mást, mint beolvassa a /dev/cdrom fájlt (ami nem más, mint a cd vagy dvd meghajtó. Használhatjuk a /dev/dvd elérési utat is), majd ezt a > jel miatt nem a monitorra, hanem a megadott fájlba irányítja át.
Vagy az mkisofs program segítségével:
mkisofs -r -o fajlnév.iso /cdrom/

ISO fájl felcsatolása

Fel is csatolhatjuk az ISO fájlt, így úgy megtudjuk nézni a tartalmát, hogy kiírnánk lemezre.
sudo mount /ahol/a/fajl/van/izemize.iso /mnt/cdrom -o loop
Ezután a /mnt/cdrom mappában fogjuk látni az ISO fájl tartalmát. Bármilyen előzőleg létrehozott mappát megadhatunk, csak írjuk át a /mnt/cdrom elérési utat. a -o loop opció jelenti, hogy egy fájlrendszeren lévő fájlt csatolunk fel.
Lecsatolás:
sudo umount /mnt/cdrom
Ha nem a /mnt/cdrom mappába csatoltok, akkor azt adjuk meg, ahová csatoltuk.

CD-RW törlése

Gyorstörlés:
cdrecord -v dev=/dev/cdrom blank=fast
Teljes lemez törlése:
cdrecord -v dev=/dev/cdrom blank=all
A dev=/dev/cdrom paraméter jelenti a CD/DVD meghajtót.

ISO fájl kiírása CD lemezre

cdrecord -v dev=1,0,0 speed=32 -eject Amitkiírunk.iso
A dev=1,0,0 jelenti, hogy melyik CD meghajtóra akarjuk írni. A CD/DVD meghajtók nevét a következő paranccsal nézhetjük meg:
cdrecord -scanbus

cdrecord -scanbus
cdrecord -scanbus
A speed=32 opció jelenti, hogy milyen sebességgel írjuk ki. Ha elhagyjuk, akkor optimális sebességgel írja ki (amit a meghajtó a lemezből kiszámol).
Az -eject opció hatására az írás végeztével kiadja a tálcát.

Mappa kiírása CD lemezre

mkisofs -J -V "CÍMKE" /mappa/amit/kiírunk | sudo cdrecord dev=1,0,0 speed=32 -data -v -eject driveropts=burnfree -
a -J opció hatására joliet kompatibilis lesz a lemez, a -V után idézőjelekben a lemez lemezcímkéjét adhatjuk meg, majd a mappát, amit ki szeretnénk írni.
A többi opció ugyanaz mint ha ISO fájl írnánk ki.

ISO fájl kiírása DVD lemezre

growisofs -speed=1 -Z /dev/dvd=DVDimage.iso
A -speed=1 paraméter itt a DVD írás sebességét jelenti.

Mappa kiírása DVD lemezre

growisofs -dvd-compat -speed=4 -Z /dev/dvdJ /mappa/amit/kiírunk
Ha újraírható DVD lemez van a meghajtóba, akkor törli is azt.

Újraindítás, leállítás

Ha csak terminálon (SSH pl.) férünk hozzá a géphez, hasznos lesz:
Újraindítás
sudo shutdown -r now
Leállítás (kikapcsolás)
sudo shutdown -h now
VAGY
sudo halt
A shutdown parancsnak a now (azonnal) érték helyett időt is megadhatunk (Ó:p formában, pl: 8:23), ez esetben a megadott időpontban hajtja végre a műveletet.

Melyik program foglalja a memóriát?

A következő paranccsal a futó processzeket memóriafoglalás szerint rendezhetjük sorba, így megtudván, hogy melyik program eszi a memóriát.
ps aux | sort -nrk 4 | head

Processzek memóriahasználat szerint. Firefox eszi a legtöbbet.
Processzek memóriahasználat szerint. Firefox eszi a legtöbbet.

Telepített csomagok listájának mentése

Elmenthetjük egy rendszeren a fent lévő csomagok listáját, így egy másik gépen (ahol ugyanaz az Ubuntu verzió fut), gyorsan felrakhatjuk majd ugyanazokat a programokat mint a saját gépünkön.
sudo dpkg --get-selections > /ahova/mentse/csomagok.txt

Csomagok telepítése lista alapján

Az előbbi paranccsal létrehozott lista alapján telepítsük a csomagokat. Fontos, hogy még a visszaállítás előtt ugyanazokat a tárolókat engedélyezzük, állítsuk be, mint amik az eredeti gépen voltak.
sudo dpkg --set-selections < /ahova/mentse/csomagok.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

ps2pdf

A .ps fájlok PostScript fájlok. Ezeket egyszerűen átkonvertálhatjuk PDF fájllá:
ps2pdf fajl.ps fajl.pdf
Ha nem lenne ps2pdf parancs, akkor telepítsük:
sudo aptitude install ghostscript

Hova települt a csomag?

Hogy megtudjuk, hogy hova települ egy csomag (hol találhatóak meg a csomag fájljai):
whereis csomagnév

whereis firefox
whereis firefox

Eltávolított programok beállításainak törlése

Ha csak simán töröljük a csomagokat, akkor a beállításaik megmaradnak. Ez bizonyos eseteknek gondot okozhat. A következő paranccsal az eltávolított csomagok visszamaradt beállításait is törölhetjük:
sudo aptitude purge `dpkg --get-selections | grep deinstall | awk '{print $1}'`

.deb csomag eltávolítása

Ha egy programot, csomagot nem tárolóból, hanem letöltött .deb fájlból telepítettünk, akkor a következő módszerrel távolíthatjuk el:
sudo dpkg -r csomagnév

Szó cseréje sok szöveges fájlban

Előfordulhat, hogy sok szöveges fájlban kell egy megadott szót lecserélni egy másikra.
grep -lr -e 'AMIT' /a/fajl/vagy/mappa/* | xargs sed -i 's/AMIT/AMIRE/g'
Az AMIT helyére írjuk be amit cserélni akarunk, az AMIRE helyére pedig amire le akarjuk cserélni.
Azt, hogy hol cserélje, a /a/fajl/vagy/mappa/* módosításával tudjuk beállítani. Beállíthatunk csak egy fájlt, vagy akár, hogy egy mappában. Ha egy mappában akarunk cserélni, akkor a végén a * karakter legyen.

Telepített csomag verziója

apt-cache policy csomagnév

apt-cache policy firefox
apt-cache policy firefox

Gzip (tar.gz) fájl kicsomagolása

tar -zxfv fajl.tar.gz
Alapértelmezés szerint oda csomagolja ki, ahol a tar.gz fájl van. Megadhatunk célt is:
tar -zxfv fajl.tar.gz  -C /ahová/ki/akarjuk/

bzip2 (tar.bz2) fájl kicsomagolása

tar -xvjf fajl.tar.bz2
A -C kapcsolót itt is használhatjuk a cél mappa megadására

Mappa becsomagolása gzipbe

tar -cvzf mentés.tar.gz /amit/menteni/akarunk
Megadhatunk több mappát, különálló fájlokat is, hogy miket tömörítsen. Ez esetben csak spacel válasszuk el
Pl.: /home mappa és /etc mappa tömörítése
tar -cvzf mentés.tar.gz /home /etc

Mappa becsomagolása bzip2be

tar -cvjf mentés.tar.bz2 /amit/menteni/akarunk

Eszköz feltöltése véletlenszerű adatokkal

A következő parancs segítéségével teljesen véletlenszerű adatokkal tölthetünk fel egy adathordozót (pendrive, merevlemez), így megnehezítve annak a dolgát, aki adatokat akarna visszaállítani belőle.
sudo dd if=/dev/urandom of=/dev/sda
Az of paraméterben adjuk át, hogy melyik meghajtóra szeretnénk írni.

Mikor melyiket? Installálásnál melyiket használjam? Frissítés, stb.
Találtam leírást, de a különbséget nem mondja el.
Programok kezelése aptitude-el:
* aptitude install "programnév" (Adott program installálása)
* aptitude search "keresendő szó" (Keresés a csomagok között)
* aptitude remove "csomagnév" (Eltávolítás a konfigurációs fájlok megtartásával)
* aptitude purge "csomagnév" (Adott csomag eltávolítása minden összetevőjével együtt)
* aptitude clean (üríti a gyorsítótárat)
* aptitude show "csomagnév" (csomag információ)
* aptitude reinstall "csomagnév" (csomag újratelepítése)
* aptitude update (frissíti a csomaglistát)
* aptitude safe-upgrade (a lehető legújabb verzióra frissíti a csomagokat.)
* aptitude full-upgrade (a lehető legújabb verzióra frissíti a csomagokat, és telepít vagy eltávolít ha szükséges.)
* aptitude dist-upgrade (újabb kiadásra történő frissítéshez)
* apt-get: Frontend a dpkg-hoz.
Használata:
* apt-get install "csomagnév" (program telepítése)
* apt-get remove "csomagnév" (program eltávolítása)
* apt-cache search "csomagnév" a csomaglistában)

Konzolmód terminál parancsai

 sudo addsuer root root
passwd root
su
clear
man -h
ls
cd /etc/
df
history
last
ifconfig
cfdisk
apt-get install xinit ha GUI kell
top
ps
pstree -a
lsmod
date
time
route
netstat

Kipróbált parancsok

Az itt felsorolt parancsokról csak egy soros leírást találhatsz. Ha bővebb információkat szeretnél kapni róluk, akkor használd a man parancs_neve parancsot.
access
Eldönti egy fájlról, hogy elérhető-e.
adduser
Új felhasználó felvétele a rendszerbe.
ae
Teljesképernyős szövegszerkesztő.
apropos
Keresés kézikönyv nevekben es leírásokban.
arch
A gép architektúrájának kiírása.
at
Parancsok ütemezett futtatására.
atrun
Későbbi futtatásra várakozási sorba helyezett feladatokat futtatja.
awk
Mintakereső és feldolgozó nyelv.
basename
Levágja a könyvtárat és a végződést a fájlnevekről.
bc
Lebegőpontos kalkulátor nyelv.
cat
Fájlokat fűz össze és kiírja a standard kimenetre.
cd
Könyvtárváltás.
chgrp
Fájlok és könyvtárak tulajdonosi csoportjának megváltoztatására.
chmod
Fájlok és könyvtárak hozzáférési engedélyek beállítására.
chown
Fájlok és könyvtárak tulajdonosának megváltoztatására.
chroot
Megváltoztatja a gyökérkönyvtárat és végrehajt benne egy programot.
chsh
Bejelentkezési parancsértelmező állítása.
chvt
Az aktuális virtuális terminál megváltoztatása.
cksum
Ellenörző összeg képzése és bájtok megszámlálása egy fájlban.
clear
A terminál képernyőjének törlése.
clock
A felhasznált processzoridő megállapítása.
colrm
A fájlból oszlopokat távolít el.
cp
Fájlok másolására.
cpio
Fájlokat másol archívumokba és archívumokból.
cut
Fájlok sorainak részeit írja ki.
crontab
Parancsok időzített végrehajtását lehet ütemezni a segítségével.
ctrlaltdel
Beállítja a Ctrl-Alt-Del billentyűkombináció funkcióját.
date
Kiírja vagy beállítja a rendszerdátumot és -időt.
dc
Tetszőleges pontosságú számológép.
dd
Másolás közbeni fájlkonverzióra.
deallocvt
A használaton kívüli virtuális konzolok felszabadítása.
df
Szabad lemezterület összegzése.
dialog
Párbeszéddobozokat jelenít meg shell-scriptekben.
dir
Könyvtárak tartalmának listázása.
domainname
Megjeleníti vagy beálllítja a rendszer NIS/YP-tartománynevét.
dnsdomainname
Megjeleníti vagy beálllítja a rendszer DNS-tartománynevét.
du
Összegzi a lemezfoglalást.
dumpkeys
Kiírja a billentyűzet megfeleltetési táblázatát.
echo
Kiírja a szöveg egy sorát.
edquota
Felhasználói kvóta módosítása.
egrep
Mintához illeszkedő sorokat nyomtat.
eject
Kiadja a cserélhető adathordozót.
env
Program futtatása megváltoztatott környezetben.
expand
Tab karakterek szóköz karakterekké konvertálása.
export
Globális változó megadása.
false
Sikertelenül nem csinál semmit.
fdflush
Kényszeríti a hajlékonylemez-meghajtót a lemezcsere detektálására.
fdformat
Floppylemezt alacsony szinten formáz.
fgrep
Mintához illeszkedő sorokat nyomtat.
file
A fájl típusát próbálja megállapítani.
find
Fájlokat keres egy könyvtárstruktúrában.
finger
Felhasználói információk megjelenítése.
free
Kiírja a rendszerben szabad és elhasznált memória mennyiségét.
fsck
Fájlrendszer ellenőrzése és javítása.
fstab
Statikus információ a fájlrendszerekről.
ftpcount
Megmutatja a pillanatnyi ftp felhasználókat osztályonként.
ftpd
DARPA Internet File Transfer Protocol szerver.
gpm
Kivágás és beillesztés segédprogram és egérszerver virtuális konzolokra.
grep
Mintához illeszkedő sorokat nyomtat.
gzexe
Végrehajtható fájlok tömörítése.
gzip
Fájlok tömörítése vagy kicsomagolása.
gunzip
Fájlok tömörítése vagy kicsomagolása.
head
Fájlok első részének kiírása.
hexdump
ASCII, decimális, hexadecimális, oktális dump.
hostid
A rendszer host id-jének beállítása.
hostname
Megjeleníti vagy beálllítja a rendszer hostnevét.
httpd
Apache hipertextátviteli protokoll (hypertext transfer protokoll) szerver.
hwclock
A hardveróra (Real Time Clock) lekérdezése és beállítása.
ifconfig
Egy hálózati interfész konfigurálása.
inittab
A sysv-kompatibilis init processz által használt inittab fájl formátum.
install
Fájlok másolása és attribútumaik beállítása.
joe
Szövegszerkesztő.
kbdrate
Beállítja a billentyűzet ismétlési sebességét és késleltetési idejét.
kernelversion
A kernel fő verziószáma.
kill
Megállít egy processzt.
killall
Név szerint állíthatjuk meg a processzeket.
ld
Egyedi tárgy-fájlokat végrehajtható programmá szerkeszt.
ldd
Kiírja a program által használt megosztott könyvtárakat.
less
Szűrőprogram fájlok tartalmának kiírásához.
ln
Fájlok közötti kötéseket (linkeket) hoz létre.
locate
Mintához illeszkedő fájlokat nyomtat a fájlnév adatbázis(ok)ból.
ls
Könyvtárak tartalmának listázása.
lsattr
Megváltoztatja a fájlok attribútumát az ext2 fájlrendszeren.
lsmod
Listázza a betöltött kernel modulokat.
man
Formázza és kiírja az on-line kézikönyvlapokat.
manpath
Kiírja a felhasználó kézikönyvlap keresési útvonalát.
mesg
Terminálokra üzenetek küldésének engedélyezése/tiltása.
mkdir
Könyvtár létrehozása.
mkfs
Fájlrendszer létrehozása.
more
Szűrőprogram fájlok tartalmának kiírásához.
mount
Fájlrendszer csatlakoztatásához.
mv
Fájlokat nevez át.
newer
Összehasonlítja a fájlok utolsó módosításának idejét.
nisdomainname
Megjeleníti vagy beálllítja a rendszer NIS/YP-tartománynevét.
od
Fájlok ömlesztése (dump) oktális és más formában.
passwd
Felhasználói jelszó megváltoztatása.
pico
Egyszerű szövegszerkesztő a Pine Composer stílusában.
pine
Program e-mail es internetes hírek kezelésére.
ping
Adott rendszer működésének ellenőrzése.
ps
A futó processzeket mutatja meg.
pwd
Kiírja az aktuális (munka-) könyvtárat.
readlink
Szimbolikus link tartalmának kiírása.
rm
Állományok eltávolítása.
rmdir
Törli az üres könyvtárakat.
rmmod
Eltávolítja a paraméterként megadott kernelmodult a memóriából.
route
Az IP routing tábla kiírása/megváltoztatása.
rsh
Távoli shell, programok távoli futtatására.
sed
Folyamszerkesztő (stream editor).
seq
Számok sorozatát írja ki.
setterm
A terminál tulajdonságainak beállítása.
shutdown
A rendszer leállítására/újraindítására használható.
sleep
Várakozás meghatározott ideig.
slist
Az elérhető NetWare szerverek listája.
sort
Szövegfile sorainak rendezése.
split
Darabokra hasítja a fájlokat.
ssh
Secure shell client (remote login program).
stty
A terminál vonal beállításait változtatja meg, illetve írja ki.
su
Indít egy shellt más user és group ID-vel.
tac
Fájlok összefűzése és nyomtatása fordítva.
tail
Kiírja a meghatározott fájl utolsó részét.
talk
Beszélgetés egy másik felhasználóval.
tar
Archiváló segédprogram.
tee
Olvasás standard bemenetről, írás standard kimenetre és fájlokba.
telnet
Kapcsolat létesítése másik géppel.
test
Fájltípust ellenőriz és értékeket hasonlít össze.
touch
Fájl időbélyegének megváltoztatása.
tput
Inicializál (beállít) egy terminált vagy lekérdezi a terminfo-t adatbázist.
true
Nem csinál semmit, sikeresen.
tty
Kiírja a standard bemenethez kapcsolódó terminál nevét.
umask
A fájlgenerációs maszk értékének beállítására illetve kiírására.
umount
Fájlrendszerek lecsatolása.
uname
Rendszerinformációkat ír ki.
unarj
Kicsomagoló az ARJ archiváló segédprogramhoz.
unexpand
Szóköz karakterek tab karakterekké konvertálása.
uniq
Egy rendezett fájlból kiszedi a duplikált sorokat.
uptime
Kiírja mennyi ideje fut a rendszer.
vdir
Könyvtárak tartalmának listázása.
vlock
Konzol záró program.
wall
Üzenetküldés valamennyi felhasználó termináljára.
watch
Program figyelése frissítéssel.
wc
Fájlokban található bájtok, szavak és sorok számát írja ki.
whereis
Meghatározza a parancshoz tartozó bináris, forrás és man-lap fájlok helyét.
which
Megmutatja a parancsok teljes elérési útját.
who
Megmutatja, ki van bejelentkezve.
whoami
Az érvényes felhasználói azonosítót írja ki.
whois
Internet felhasználói név könyvtár szolgáltatás.
write
Üzenet küldése másik felhasználónak.
xargs
Beolvas és végrehajt egy parancssort a standard input-ról.
yes
Karakterlánc ismételt kiírása megszakításig.
ypdomainname
Megjeleníti vagy beálllítja a rendszer NIS/YP-tartománynevét.
zcat
Fájlok tömörítése vagy kicsomagolása.
A telepítés után ajánlatos parancsok.:
dpkg-reconfigure debconf 
# Ha a lehetőségek közül a low-t "alacsonyt" választjuk, 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élhetjük meg magunkat, ha a következő parancsokat elsajátítjuk.:
man parancs
# A parancs manual oldalait nyitja meg, rövid, tömör, célratörő leírás
man -k szó
# Az apropos program kimenete
apropos szó
# Minden olyan parancsot megad, mely manual oldalaiban szerepel a "szó"
parancs --help
# Információ a "parancs" használatáról
info parancs
# Információ a "parancs" használatáról
whatis parancs
# Egysoros az 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ását megtalálhatjuk
# (általában html formátumban is)
Fontos! Nem minden (a leírásban felsorolt) parancs tartozéka egy alaprendszernek, előfordulhat hogy telepítenünk 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áthatjuk, ahogy a rendszerünk "é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 kapunk processzorunkró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
alias
# Különböző parancsokat saját elképzeléseink szerint átnevezhetünk.
# /home könyvtárunk .bashrc fájlja tartalmazza beállításainkat.
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.)
cat
# Fájl tartalmát írja ki.
> fájl : várja a bemenetet, amely a "fájl" tartalma lesz
-n fájl : beszámozza a fájl sorait
cd 
# Könyvtár váltás parancs.
cd : /home könyvtárunkba jutunk 
cd .. : egy könyvtárral feljebb kerülünk
chmod
# Fájlok-, könyvtárakra vonatkozó jogokat állíthatjuk be
-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
#
# tulajdonos (jele:U) | csoport felhasználó (jele:G) | mindenki más (jele:O)
#         rwx         |            rwx               |          rwx
#
# Adjuk ki az ls -la parancsot és máris világossá válik a dolog.
# A sor elején található "d" a directory, "-" a file jele.
#
# Jogokat számokkal, vagy szimbólikus jelekkel határozhatunk meg.
# Számokkal.: 4-write, 2-read, 1-executable jog, összeadva, külön U,G,O-nak
chmod 777 file : UGO-nak egyaránt minden jog.
chmod 751 file : U-nak minden, G-nek írási, futtatási, O-nak futtatási jog.
# Betűkkel.: kinek+mit
chmod u+rwx file : Tulajdonosnak (U) r,w,x jog adása.
chmod g+rx file : Csoport felhasználónak (G) r,x jog adása.
chmod a-rwx : Mindenkitől (A-all) elveszünk minden jogot.
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 kapunk vissza hibaüzenetet, ha valami nem sikerült
--no-dereference : Szimbólikus linkeknél, a link jogosultságait állítjuk
--dereference : Szimbólikus linkeknél, a file (amire a link mutat) jogait változtatjuk
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ó
cfdisk
# Lemezkezelő, partícionáló
cp -r /honnan/mit /hova/milyen_néven
# Fájl, könyvtár másolás
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
diff -u file1 file2 > eredmeny
# Összehasonlítja a fájlok tartalmát, a különbséget pedíg az eredmény-be írja
du
# Az aktuális könyvtár fájljainak méretét adja meg
df
# Szabad terület számítása, partíciónként
-H : Megabyte, Gigabyte-okban írja ki
echo szoveg
# Kiírja a képernyőre a szoveg-et
echo szoveg > file : a szoveg-et file-ba írja
echo VegyEs | tr  a-z A-Z : a VegyEs szóban felcseréli a kis és nagybetűket
echo egyesek | tr -d e : az egyesek szóból kiveszi az e betűket
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.
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)
fsck
# lemezellenőrző
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.
-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
-v : azoakt írja ki, amiben nem szerepel a keresett szó
# 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-7 fájl : utolsó 7 sort már nem írja ki
-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 írhatjuk ki
mc
# Midnight Commander fájlkezelő
mcedit
# Az mc szövegszerkesztője
install
# Fájlok másolása, attribútumok módosítása
less
# Szűrőprogram fájlok adatainak megjelenítéséhez.
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
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
slocate -u
# A hdd tartalmáról készít adatbázist.
-e könyvtár1 konyvtár2 : könyvtárakat tudunk kivenni az adatbázisból
locate fájl
# Az előzőekben létrehozott adatbázisban megkeresi a fájl-t. (Azonnal meg van az eredmény)
ln -s
# Soft link-et hoz létre
-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 
# Eszköz felcsatlakoztatás (CD,partíció, pendrive, hdd, etc.)
-o loop cdimage.iso./cd-rom : cdimage.iso felmountolása megtekintésre. (kell cd-rom könyvtár)
/dev/hda2 /mnt/vinyo : hda2-es eszközt csatolja fel a vinyo könyvtárba (létre kell elötte hozni!)
-o noatime /dev/hdX : noatime attribútummal csatlakoztatja a lemezt. (I/0 művelet csökkentés!)
umount /dev/eszköz
# Lecsatlakoztatás 
pwd
# Kiírja az aktuális könyvtárat
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
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)
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 cask egyszer írja ki
sync
# A Ramból a merevlemezre még ki nem írt adatok szinkronizálása (Fontos)
touch fájl
# létrehoz egy üres állományt
-t MMDDHHmm fájl : A fájl létrehozás dátumát változtatja meg. MM-Hónap DD-Nap HH-Óra mm-Perc
tree
# Könyvtárstruktúrát írja ki 
tar 
# Ki-be tömörítő
zxvf file.tar.gz : Kitömöríti a gz-t, majd a tar-t, és egy /file könyvtárba teszi
xvfj file.bzip2 : bzip2-t tömöríti ki
tf mentes.tar : megmutatja a mentes.tar tartalmát
tvvf mentes.tar : részletes listázás, jogok, tulajdonos etc.
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
vi
# Parancssoros szövegszerkesztő
# Kilépés mentéssel.: ESC, majd :wq
# Kilépés mentés nélkül.: ECS, 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 mukilas kifejezéshez ugrik
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
which program
# A program futtatható állományának elérési útvonalát adja meg (általában /usr/bin)

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

Apt-vel telepítsük a quota 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
# megtekinthetjük  felhasználónként a kvótabejegyzéseket
edquota -u user
edquota -g group
# Felhasználó, csoport kvóták beállítása
# Alapértelmezett szerkesztőnk átmeneti állományaként állíthatjuk 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 meg kell adnunk az options-ba a usrquota, grpquota kapcsolókat.
Rendszeradminisztráció top
login
# Bejelentkezés
logout
# Kijelentkezés
who
# Bejelentkezett felhasználók kiíratása
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
-G csooport1,csoport2 : vesszőkkel elválasztva, ha egyéb csoportnak is tagja a felhasználó
-m -k /home/letezo_user uj:user : 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 csoportjai
groupmod
# Csoport fiókját változtatja
-n név újnév : csoport nevét változtatja
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)
mkswap 
# Swap terület létrehozása
swapon 
# Swap bekapcsolása
swapoff
# Swap kikapcsolása
last
# Ki jelentkezett be utoljára és honnan (felhasználó vagy terminál alapján)
lastlog
# /var/log/lastlog kimenete
passwd
# A bejelentkezett felhasználó jelszavának módosítása
stat
# File vagy filesystem státusz
su - user
# Indít egy másik shell-t, user felhasználóként
write user tty
# A felhasználóknak üzenet küldés
Folyamatok top
w
# Nemes egyszerűséggel megmutatja, ki van belépve, és mit csinál
pidof folyamat
# A folyamat azonosítóját adja meg (PID)
parancs &
# Parancs futtatása a háttérben
fg : felélesztés, majd előtérben futás
bg : felélesztés, majd háttérben futás
jobs
# Háttérben futó programok kiíratása
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.
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
kill "pid"
# Folyamat leállítása PID szerint
-9 pid : erőszakos bezárás 
-s "signal" : megadja, hogy miylen jelet küldünk a folyamatnak.
signal-ok: TERM, QUIT, ABRT, KILL
-1 : jelentése SIGHUP, mely 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
killall parancs
# Ha több "parancs"-fut (pl.: iceweasel), mindet leállítája
nohup find / name t* > ~/nohup.log &
# A "t" betűvel kezdődő fájlok keresése a háttérben, az eredmény a nohup.log-ba kerül.
init
# Futtatási szint beállítása
0 : kikapcsolás
1 : single-user mód
2-5 : multi-user mód
6 : reboot
# /etc/inittab -ban állítható be a gép indulási init szintje.
# /etc/rcX.d könyvtárak a megfelelő szinteken induló programok linkjeit tartalmazza
# Új szolgáltatás hozzáadása init szintekhez : Progtam bemásolása /etc/init.d-be, majd erről 
# egy link létrehozása a kiválaszottt init szint könyvtárába (pl.: rc2.d) Ha S betűvel kezdődik
# elindul , mással nem. A Kezdőbetű után levő szám az induló folyamatok sorrendjét befolyásolják
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
shutdown 
# Kikapcsolás
-h now : Azonnali kikapcsolás (időt is megadhatunk)
-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
cron
# Parancs ütemező
# /etc/cron.d ; /etc/cron.daily ; /etc/cron.weekly
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 parancs : Egy új VT-t nyit, (1 shell-en) melyben a "parancs" fut.
Ctrl+a+d : bill. kombinációval tehetjük háttérbe.
screen -R $(pidof SCREEN) : paranccsal tudjuk előtérbe hozni.
Ctrl+a+? : előhozhatjuk a legfontosabb bill. kombinációkat
Ctrl+a+c : új ablakot hozhatunklétre.
Ctrl+a+p VAGY n : előző vagy következő ablakra ugrás. (previous, next)
time -v parancs
# A parancs lefutási idejét méri
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
# A 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
./configure
make
make install
# Csomag telepítése forrásból
alien
# Csomag konverter program (pl.: .rpm .deb etc.)
apt /Advanced Package Tools, csomagkezelő/
-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 a barátunk.
-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
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
dselect
# A dpkg barátságosabb arca

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
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)
host
# Lekérdezéseket kezdeményez a DNS kiszolgáló felé, tartományokról, zónákról.
-t ns valami.hu : valami.hu nameserveré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.
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
mii-tool
# Hálózati tesztelő
nbtscan
# NetBIOS információkat adja meg, a hálózaton
net usershare add megosztasnev /eleresi_ut comment acl
# Megoszt könyvtárakat a hálózaton
# Ha a fenti parancs ilyen hibát dob.: "(net usershare: usershare are currently disabled)"
# az alábbiakban kell eljárnunk:
# mkdir /usr/local/samba/lib/usershares
# chgrp userneved /usr/local/samba/lib/usershares
# chmod 1770 /usr/local/samba/lib/usershares
#smb.conf global részébe a következőket.:
# usershare path = /usr/local/samba/lib/usershares
# usershare max shares = szám # (or the desired number of shares)
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? 
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.
-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
# Útválasztó tábla 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 defaul 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.
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
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/
proftpd
# FTP kiszolgáló démon
# config file.: /etc/proftpd  
pure-ftp
# FTP kiszolgáló
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
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)
Bash programozás top
# A batch fájlhoz hasonló eljárás.
# Programunk első sorában minden esetben meg kell adnunk a futtató programot, jelen esetben a bash-t.
# Tehát a fájlunk kezdete legyen: #!/bin/bash
# Felkiáltójel nélkül más futtató programot is megadhatunk a programunk első sorában.
# Futtatási jog nélkül nem tudjuk használni, ezért chmod +x file 
# Programunk futtatásához ./program_nev parancsot kell használnunk.

Í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 meghadá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)

Dedikált környezeti változók

EDITOR : Az alapértelmezett szövegszerkesztőnk
HOME : Felhasználói könvvtárunk elérési útvonala
MAIL : Beérkező email-jeink 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ünk típusa
PAGER : Az alapértelmezett file nézegetőnk elérési útvonalát kell tartalmaznia
PWD : A könyvtár, ahol éppen vagyunk. (Szimbólikus linknél nem egyezik meg a pwd kimenetével!)
SHELL : A jelenleg futú shell-ünk teljes elérési útvonala
TERM : A Terminálunk 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ónkat környezeti változóvá tesszük
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

# " | " segítségével tudjuk egy program kimenetét (stdout) egy másik program
bemenetére (stdin) csatolni. pl.:
ps aux | grep iceweasel
# Az összes folyamat kimenetét a grep szűrő bemenetére irányítjuk, amely az iceweasel-t keresi.
# stdin - standard input, jele.: fd0 (alapértelmezett bemenet, pl.: monitor)
# stdout - standard output, jele.: fd1 (alapértelmezett kimenet, pl.: billentyűzet)
# stderr - standard error, jelen.: fd2 (alapértelmezett hibacsatorna)
./program 2> hiba.txt
# Programunkat lefuttatjuk, az esetleges hibákat (stderr) a hiba.txt-be irányítjuk,
# az stdout helyett.
./program 1> kimenet.txt 2>&1
# Programunkat lefuttatjuk, kimenetét (stdout) a kimenet.txt-be mentjük, valamint
# az esetleges hibákat (stederr) hozzáfűzzük a kimenet.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, programunk 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öntjük T1 és T2 értékéről, hogy egyenlőek e.
-while szerkezet.:
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo a szamlalo erteke: $COUNTER
let COUNTER=COUNTER+1
done 
# COUNTER változónkat 1-el növeljük 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ónkat 20-as kezdőértékről 1-el csökkentjük, 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ónkat felveszi 1-től 10-ig az értékeket, majd ki is írjuk 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íratjuk 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!)

További példák.:

#!/bin/bash
echo "Most `w -h | wc -l` felhasználó van bejelentkezve."
# Kiíratjuk programunk segítségével, hogy hány felhasználó van bejelentkezve
#!bin/bash
test -d /home/user && echo van || echo nincs
# Megvizsgáljuk, hogy van e /home/user könyvtár, két kimenetű elágazással (&&)
# Ha van.: van
# Ha nincs.: nincs 
# -d : van-e ilyen?
#!/bin/bash
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
#!/bin/bash
if [ -s /etc/motd ]; then echo nagyobb; else echo zerus;
fi
# Megvizsgáljuk, 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.
#!/bin/bash
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.
Egyéb programok top
amsn
# MSN kliens
acpi
# ACPI eszközök információi
acpid
# acpi program démonja
bitchx
# IRC kliens (TUI)
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
false
# Nem csinál semmit, sikertelenül. (1-es visszatérési értékkel)
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ő
k3b
# KDE alapú cd-dvd író program (GUI)
kopete
# MSN kliens
mbmon
# Motherboard monitoring
memtest86
# Memória tesztelő alkalmazás
mplayer
# Média lejátszó
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ő

Mai óra anyaga Kernel-alapú virtualizáció 14A 1/1

A kernel virtualizációs megoldás:

Manapság rengeteg virtualizációs megoldás érhető el Unix / Linux rendszerekre, ebből az egyik legnépszerűbb a kvm, vagyis a Kernel-based Virtual Machine. Ez egy teljes virtualizációs megoldás (full virtualization solution) amely képes kihasználni az újabb processzorokban rejlő (AMD - V, Intel VT) hardveres virtualizáció képességet. Magában foglal egy betölthető kernel modult (kvm.ko). A Kvm alkalmas egy adott linux operációs rendszeren virtualizált környezetben egy másik operációs rendszert futtatni. Azaz miközben a natív rendszer (host) fut a számítógépen addig képesek vagyunk egy másik rendszert indítani (guest) virtuális környezetben, mondhatni gép a gépben hatást érünk el. Egy nagyon egyszerű példa: elindítjuk az ubuntut aztán az ubuntuból futtatunk egy windows operációs rendszert. Nagy előnye, hogy hordozható rendszert kapunk azaz kiírhatjuk dvd-re és magunkkal vihetjük bárhová. Persze használatához másik számítógépen is szükséges a rendszerigény címszó alatt felsoroltak és a kvm megléte.
A leírás két részből áll, az egyik a parancssorral történő használatot írja le, a másik pedig a grafikus felületű felhasználást mutatja be.

Rendszerigény:

Hardveres virtualizációra képes processzor. Ezt ezzel a paranccsal állapíthatjuk meg:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Memória terén a kvm csapata 1Gb határt szab meg minimumnak, de ennél kevesebb fizikai memóriával is lehet futtatni virtuális gépet (a használható sebesség érdekében célszerű beszerezni a megadott mennyiséget). Minél nagyobb és több az erőforrás, annál gyorsabb lesz a virtuális gépünk is.

Parancssoros használat bemutatása:

Telepítés:
Telepíthetünk 64 bites rendszerre (host) mind 32 mind 64 bites vendég (guest) operációs rendszert. Viszont 32bites host rendszernél csak 32 bites vendég rendszer használható. A Kvm az Ubuntu disztribúció részét képezi a 7.04-es kiadástól számítva. Így a telepítés rendkívül egyszerűen megoldható. Nyissunk egy terminált és gépeljük be az alábbiakat:
$ sudo aptitude install kvm
Ezek után egy kérdést fog föltenni a csomagkezelő amire Igenlő választ kell adnunk. (a függőségek telepítésére kérdez rá) Ezután letölti és installálja, használatra kész.
Használat:
Hozzunk létre egy képfájlt az alábbi módon:
Először is döntsük el hova akarjuk rakni virtuális rendszerünket. Ebben a példában a felhasználó könyvtárába létrehozott "kvm" könyvtárba fogjuk létrehozni a képfájlt.(Ha rossz helyen hoztuk létre az sem baj
  1. töröljük és hozzunk létre egy újat a cél helyen
  2. másoljuk át a cél könyvtárba). Sokféle képformátumot képes kezelni, mint pl.: vmware által használt vmdk, vagy a qemu féle img de külön partícióra is telepíthetjük vele rendszerünket. (pl.: /dev/hda2/)
$ mkdir /home/"felhasználónév"/kvm
$ cd /home/"felhasználónév"/kvm
$ qemu-img create "a rendszer neve".img -f qcow 8G
(Megadhatunk kisebb értéket is, mérjük igényinkhez. pl.: 4G)
Mielőtt nekikezdünk a telepítésnek nézzük át a kapcsolókat melyekkel szabályozhatjuk a rendszert:
  • -no-acpi (lásd: http://wiki.hup.hu/index.php/ACPI) Ha telepítésnél be volt kapcsolva akkor annál a rendszernél mindig használjuk!
  • -m (ezzel a kapcsolóval határozhatjuk meg a virtuális gép számára elérhető memória mennyiségét)
  • -boot (miről bootoljon a virtuális rendszer pl.:cdrom vagy egy image file)
  • -hda (a rendszert tartalmazó képfájl helye)
  • -soundhw es1370 (hangkártya emuláció)
  • -snapshot (pillanatképet készíthetünk a rendszerünkről, biztonsági mentésként)
  • -localtime (windows rendszereknél alkalmazandó kapcsoló a helyi időt fogja használni a gép)
  • -usb (elérhetővé teszi az usb-s eszközöket)
  • -usbdevice tablet (az egér kiléphet a virtualizációs ablakból a gyorsgomb(hotkey) használata nélkül)
  • -net (internet beállítások (pl.: megadhatjuk a mac címet))
  • -std-vga (widescreen képernyő emulálása)
  • -smp (többprocesszoros vendég rendszer használata, maximum négy processzorig)

Indítsuk a telepítést:

$ kvm -no-acpi -m 384 -cdrom /dev/cdrom -boot d "a rendszer neve".img
A cdromnak megadhatunk képfájlt is, ez akkor jó ha a telepítendő OS egy a HDD-n tárolt képfájlból akarjuk kiolvasni.Ez esetben:
$ kvm -no-acpi -m 384 -cdrom /a/képfájl/helye -boot d "a rendszer neve".img
Ne feledjük, hogy ha linux rendszert telepítünk nem szükséges a -no-acpi kapcsoló! Windows alatt ildomos használni különben a rendszer nagyon lassú lesz. A telepítés a szokásos medrében folyik majd befejeztével indíthatjuk a rendszert:
$ kvm -hda "a rendszer neve".img -m 384 -cdrom /dev/cdrom -boot c -usb -usbdevice tablet -no-acpi
Indításnál célszerű a -boot c kapcsolót használni a -boot -d helyett annak érdekében, hogy a rendszer az indulás során a -hda kapcsolónál megadottakat tekintse elsőnek a bootsorrendnél. Ha minden rendben ment boldog tulajdonosai lehetünk egy virtuális rendszernek. Akinek problémát okoz a virtuális gép terminálban történő használata, az használja a hozzá tartozó grafikus felületet a virt-manager-t amit a leírás további részében megtalálhatnak.

Grafikus használat bemutatása:

A virtuális gép(ek) kezelésére egy grafikus eszköz is rendelkezésünkre áll. Ez azt jelenti, hogy akár egyszerűen, néhány egérkattintással is menedzselhetjük a virtuális gépeinket.(qemu, kvm, xen), viszont ezzel nem veszik el a parancssoros használhatóság lehetősége sem.
Telepítése:
Telepítsük a csomagkezelővel a virt-manager nevű csomagot.
Használata:
Indítsuk el a programot: Alkalmazások → Rendszereszközök → Virtuális gép igazgatója
Virt-manager. A képen láthatjuk a helyi gépre vonatkozó adatokat. A Fájl → Kapcsolat megnyitása menüpont alatt távoli géphez is csatlakozhatunk.
Virtuális gép létrehozása:
Kattintsunk a sor elején található nyílra (vagy jobb kattintás a localhost gépen, ezután a legördülő menüben válasszuk ki a "kapcsolódás" opciót), majd a lentebb található "Új" gombra.
Az első lépések az új Virtuális gépünk felé. Egy kedves kis varázsló bukkan fel a szemünk előtt, és megnyugtat, hogy végigvezet minket a lépéseken.
  1. Első lépésben a rendszerünk nevét kell beírni.
  2. Ki kell választanunk az architektúrát ami 32bites rendszernél i686-t a 64bites rendszernél x86_64 -et jelent. Jelöljük be a teljesen virtuális opciót, és pipáljuk ki a rendszermag / hardveres gyorsítás engedélyezéstét.
  3. Adjuk meg a telepítendő rendszer képfájljának vagy a CD-rom - nak a helyét. PXE(hálózati) telepítésre is van lehetőségünk! Válasszuk ki az OS típusát és a annak variánsát.
  4. A negyedik lépéssel elérkeztünk a tárhely létrehozásához. Itt meghatározhatjuk, hogy milyen méretű képfájlt szeretnénk létrehozni a rendszerünknek, hová szeretnénk tenni ezt a fájlt és lefoglalja e nekünk ezt a helyet a vir-manger, vagy a fájl folyamatosan növekedjen a meghatározott értékig.
  5. Memória és Processzor értékek beállítása. Minimum 256 megabájt ramot állítsunk be a virtuális rendszerünknek! A memória értékektől lentebb láthatjuk a Cpu információkat és beállítási lehetőségeket. A virt-manager minden CPU magot külön processzorként kezel azaz egy négy magos rendszernél négy processzort jelez ki. A VCPU(virtuális processzorok) száma lehetőleg ne lépje túl a processzormagjaink összegét.(azaz egy két maggal rendelkező cpu esetén ne állítsunk be három vagy annál több VCPU -t)
  6. A hatodik oldalon átnézhetjük a beállításokat. Majd a befejezés gombra kattintva indíthatjuk a telepítést.
Ubuntu telepítő képernyő, immár a virtuális gépben. Virtuális gépeink monitorozása:
A localhost(helyi gép) sort kiválasztva és a Részletek gombra kattintva láthatjuk annak adatait. Ugyanezt megtehetjük a különböző virtuális gépeknél is. Itt megnézhetjük a rendszer állapotát, és beállíthatjuk a hardvereket. (lásd következő kép)
Hardverek beállítása. Itt hozzáadhatunk, eltávolíthatunk hardvereket, illetve beállíthatjuk őket. A Boot Options menüpontban megadhatjuk, hogy rendszerünk indításánál elinduljon-e a virtuális gépünk is, illetve melyik eszközről bootoljon rendszerünk. A már ezelőtt létrehozott virtuális gépeket is tudjuk használni a virt-managerrel. Indítsunk egy új telepítést majd a merevlemez meghatározásánál adjuk meg a már létező rendszerünket.
A virt-manager közelebb hozta a kvmmel történő virtualizációt a felhasználók számára, láthattuk hat lépés és már kész is. Mindez grafikusan, egyszerű letisztul felületen.

Mivel szakmai angolt is tudni kell, íme a lényeg angolul;

Installation


Pre-installation checklist


Check that your CPU supports hardware virtualization


To run KVM, you need a processor that supports hardware virtualization. Intel and AMD both have developed extensions for their processors, deemed respectively Intel VT-x (code name Vanderpool) and AMD-V (code name Pacifica). To see if your processor supports one of these, you can review the output from this command:
egrep -c '(vmx|svm)' /proc/cpuinfo

If 0 it means that your CPU doesn't support hardware virtualization.
If 1 or more it does - but you still need to make sure that virtualization is enabled in the BIOS.
By default, if you booted into XEN kernel it will not display svm or vmx flag using the grep command. To see if it is enabled or not from xen, enter:
cat /sys/hypervisor/properties/capabilities

You must see hvm flags in the output.
Alternatively, you may execute:
kvm-ok 

which may provide an output like this:
INFO: /dev/kvm exists
KVM acceleration can be used

If you see :
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used

You can still run virtual machines, but it'll be much slower without the KVM extensions.
NOTE: You may see a message like "KVM acceleration can/can NOT be used". This is misleading and only means if KVM is *currently* available (i.e. "turned on"), *not* if it is supported.

Use a 64 bit kernel (if possible)


Running a 64 bit kernel on the host operating system is recommended but not required.
  1. To serve more than 2GB of RAM for your VMs, you must use a 64-bit kernel (see 32bit_and_64bit). On a 32-bit kernel install, you'll be limited to 2GB RAM at maximum for a given VM.
  2. Also, a 64-bit system can host both 32-bit and 64-bit guests. A 32-bit system can only host 32-bit guests.
To see if your processor is 64-bit, you can run this command:
egrep -c ' lm ' /proc/cpuinfo

If 0 is printed, it means that your CPU is not 64-bit.
If 1 or higher, it is. Note: lm stands for Long Mode which equates to a 64-bit CPU.
Now see if your running kernel is 64-bit, just issue the following command:
uname -m

x86_64 indicates a running 64-bit kernel. If you use see i386, i486, i586 or i686, you're running a 32-bit kernel.
Note: x86_64 is synonymous with amd64.

Installation of KVM


Install Necessary Packages


For the following setup, we will assume that you are deploying KVM on a server, and therefore do not have any X server on the machine.
You need to install a few packages first:
Lucid (10.04) or later
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Karmic (9.10) or earlier
$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

  • libvirt-bin provides libvirtd which you need to administer qemu and kvm instances using libvirt
  • qemu-kvm (kvm in Karmic and earlier) is the backend
  • ubuntu-vm-builder powerful command line tool for building virtual machines
  • bridge-utils provides a bridge from your network to the virtual machines
You might also want to install virt-viewer, for viewing instances.

Add Users to Groups


Karmic (9.10) and later (but not 14.04 LTS)
You need to ensure that your username is added to the group libvirtd:
$ sudo adduser `id -un` libvirtd
Adding user '<username>' to group 'libvirtd' ...

After this, you need to relogin so that your user becomes an effective member of the libvirtd group. The members of this group can run virtual machines. (You can also 'newgrp kvm' in a terminal, but this will affect only that terminal.)
Releases prior to Karmic (9.10)
You need to ensure that your username is added to the groups: kvm and libvirtd.
To check:
$ groups
adm dialout cdrom floppy audio dip video plugdev fuse lpadmin admin sambashare kvm libvirtd

To add your <username> to the groups:
$ sudo adduser `id -un` kvm
Adding user '<username>' to group 'kvm' ...
$ sudo adduser `id -un` libvirtd
Adding user '<username>' to group 'libvirtd' ...

After the installation, you need to relogin so that your user becomes an effective member of kvm and libvirtd user groups. The members of this group can run virtual machines.

Verify Installation


You can test if your install has been successful with the following command:
$ virsh list --all
 Id Name                 State
----------------------------------

$

If on the other hand you get something like this:
$ virsh list --all
libvir: Remote error : Permission denied
error: failed to connect to the hypervisor
$

Something is wrong (e.g. you did not relogin) and you probably want to fix this before you move on. The critical point here is whether or not you have write access to /var/run/libvirt/libvirt-sock.
The sock file should have permissions similar to:
$ sudo ls -la /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirtd 0 2010-08-24 14:54 /var/run/libvirt/libvirt-sock

Also, /dev/kvm needs to be in the right group. If you see:
 $ ls -l /dev/kvm
crw-rw----+ 1 root root 10, 232 Jul  8 22:04 /dev/kvm

You might experience problems when creating a virtual machine. Change the device's group to kvm/libvirtd instead:
sudo chown root:libvirtd /dev/kvm

Now you need to either relogin or restart the kernel modules:
rmmod kvm
modprobe -a kvm

Optional: Install virt-manager (graphical user interface)


If you are working on a desktop computer you might want to install a GUI tool to manage virtual machines.
$ sudo apt-get install virt-manager

Virtual Machine Manager will appear in Applications -> System Tools menu. First create a new connection to local QEMU instance from File -> Add Connection menu. Localhost (QEMU) or QEMU/KVM should appear in the virtual machine list. Note: there already exist Localhost (QEMU Usermode) connection but this does not work at least on Ubuntu 10.04.
Create a new virtual machine by pressing the top left Create a new virtual machine toolbar button.

Version-specific Notes


8.10 (Intrepid) Notes


  • Two meta packages have been added: ubuntu-virt-server and ubuntu-virt-mgmt. Ubuntu-virt-server installs the packages needed to setup a base virtulization host (kvm, libvirt-bin and openssh-server) and ubuntu-virt-mgmt installs what you need to administer it from a management station (virt-manager, python-vm-builder and virt-viewer).
  • ubuntu-vm-builder has been replaced by python-vm-builder (tutorial).
Note: libdevmapper does not load its module when it is installed (bug 277648) , so you will either need to do a
  •  $ sudo modprobe dm-loop 
or reboot your system before being able to use it.

11.10 (Oneric) Notes

Switching to the server kernel might be helpful if there are start problems with virtual machines (i.e. Windows XP freezes approximately once every 5 starts )

Az órán felmerült kérsé melyik a legkisebb használható rendszermag?

Válasz; amelyikből kiszedsz mindent.
Például a Debian által csomagolt kernel nem minimális, de nagyon lecsökkenthető, ha lecsatolhatja, újrafordíthatja és kicsinyítheti, de ez némi munkát és próbát és hibát igényel. Ehhez használja a make-kpkg csomagot. Nem biztos hogy elsőre sikerül. Legyen róla sok mentés.

A legtöbb felhasználó nem fogja újrafordítani a rendszermagjaikat, de a telepítés során figyeljen arra, hogy a párbeszédablak új rendszermag-illesztőprogramjai megjelenjenek a képernyőn. Előfordulhat, hogy a telepítés megkezdésekor a debconf prioritást a közepesre kell beállítania, ahogy én vagy alacsonyabbra; ezt ellenőrizd. Keresse meg a "debconf priority" módosítását a fő (nem a kezdeti) telepítő menüben.

Miután a debconf prioritás közepes vagy alacsonyabbra lett állítva, az "alap rendszer telepítése" lépés során párbeszédablak jelenik meg a képernyőn, és megkérdezi, hogy az összes illesztőprogramot vagy csak a célzottat szeretné. Válassza ki a "célzott" beállítást. Sok sikert a kísérletezéshez.


Angolul;

KERNELS
The above ignores one point: the kernel. The kernel packaged by Debian is not minimal. You can strip it down, recompile it, and make it much smaller, but this takes some work and some trial and error. Use the make-kpkg package for this. Be prepared to do a lot of reading before you can make this work, but it's pretty fun one you get the hang of it.
Most users aren't going to recompile their kernels, though, so, during installation, watch for a dialog re kernel drivers to appear on your screen. You may have to set your debconf priority at the start of installation to medium, as I do, or lower; check this yourself. Look for the action "change debconf priority" on the main (not the initial) installer menu.
Once you have the debconf priority set to medium or lower, during the "install the base system" step, a dialog will eventually appear on your screen asking if you want all drivers or only targeted ones. Choose "targeted."

Hogyan kezdjen hozzá?

Ha nem biztos abban, hogy mi a teendő a telepítővel, akkor tegye a következőket.

    
Indítsa el a gépet a netinst képből a telepítő indításához.
    
Az előlapi menüben válassza a speciális beállításokat, majd a szakértői telepítést (A szükséges szakértelem szintje mérsékelt, de valami nem szabványos próbálkozást szeretne végrehajtani, ezért a szakértői telepítés az, amit akarsz.)
    
Várja meg a telepítő indítását.
    
A fő telepítő menü bármely más opciójának kiválasztása előtt görgessen lefelé a debconf prioritás beállításához.
    
Válasszon kiemelt médiumot.
    
Miután kiválasztotta a prioritást, akkor minden alkalommal, amikor a telepítő visszatér a főmenüjébe, ne görgessen felfelé vagy lefelé, de csak fogadja el az alapértelmezett értéket, amelyet a telepítő kiemel minden esetben. A telepítő ilyen módon fogja átvezetni a telepítési lépéseket (lásd a 7. pontot is). Ha nem biztos benne, hogy miről beszélek, futtassa a telepítőt a fenti lépések szerint: hamarosan látja, hogy mit értek.
    
Opcionálisan átugorhatja a telepítői szakaszokat, és felismeri a hálózati hardvereket, és konfigurálja a hálózatot (és beállítja az órát is, ha nem bánja az UTC időt). Hogyan ugorhatsz? Válasz: amikor a telepítő kiemel egy olyan lépést, amelyen ki akar ugrani, mint a hálózati hardver észlelése, nyomja le a DOWN gombot a kihagyáshoz. A legtöbb installációra azonban szükség van a telepítő kiemelésére; csak kevesen tudsz kihagyni.
    
Megjegyzés: a hálózati hardver észlelésének kihagyása nem akadályozza meg, hogy a hálózati felület a telepítés után működjön. Ez csak azt jelenti, hogy a telepítés során nem lesz hálózati.
    
Kérdések esetén olvassa el a Debian telepítési kézikönyvét.Van egy bizonyos mennyiség, amit önnek kell kitalálnia. Bár nem olyan nehéz, mint amilyennek szüksége lehet, a Debian valójában nem egy kezdő rendszer. A kezdők inkább tanulhatnak egy Debian-származékon, mint a Mint vagy az Ubuntu-bár nem hiszem, hogy meg kellene próbálnia, hogy a leírt minimális gépet használja.



How to get started?

  It will not be a full manual. However, if unsure what to do with the installer, do the following.
  1. Boot your machine from the netinst image to start the installer.
  2. At the front-page menu, select advanced options then expert install (The level of expertise here required is moderate, but you are trying to do something nonstandard, so expert install is what you want.)
  3. Wait for the installer to boot.
  4. Before selecting any other option from the main installer menu, scroll down to set debconf priority.
  5. Choose priority medium.
  6. After choosing the priority, then, each time the installer returns you to its main menu, do not scroll up or down, but just accept the default the installer highlights in each instance. The installer will walk you through the installation steps in this way (but see also point 7, next). If unsure what I am talking about, run the installer per the above steps: you'll soon see what I mean.
  7. You can optionally skip over the installer stages detect network hardware and configure the network (and even configure the clock, if you don't mind using UTC time). How to skip? Answer: when the installer highlights a step you wish to skip like detect network hardware, press the DOWN key to skip it. Most of steps the installer highlights are necessary, however; there are only a few you can reasonably skip.
  8. Note: skipping detect network hardware does not prevent your network interface from working after installation. It just means that you won't be networked during installation.
  9. For questions, consult Debian's installation manual here.
There is a certain amount of this you are just going to have to figure out for yourself. Though no harder than it needs to be, Debian is not really a beginner's system. Beginners can instead learn on a Debian derivative like Mint or Ubuntu—though I do not believe that you should try that using the minimal machine you have described.

Fontos lehet, hogy a Debian szoftver csomagból választhatunk;
    
kívánt
    
fontos
    
alapértelmezett
    
választható
    
különcNeked az első három lesz érdekes.
A kiemelt fontosságú csomagok szükségesek. Ha a gép nem rendelkezik, akkor a Debian nem fog működni. Mindezeket telepítenie kell.Fontos fontosságú csomagok szükségesek ahhoz, hogy a rendszere bármilyen szokásos módon használható legyen. Ezeket elméletileg nem kell telepíteni, de úgy gondolom, hogy mindegyiket telepítenéd. Nem sok. A legfontosabb különbség a szükséges és fontos között az, hogy a szükséges csomagok elegendő funkciót biztosítanak a rendszer számára ahhoz, hogy más csomagokat (például fontos csomagokat) telepíthessenek (és / vagy eltávolíthassanak). A szükséges programcsomag önmagában nem elegendő ahhoz, hogy bármi érdekes legyen a rendszereddel (de ha kísérletet szeretne kipróbálni csak egy kísérletben, nyugodtan).A prioritást élvező csomagok nem szükségesek, de nem sok, és a standard. A szokásos megoldás az lenne, ha a szabványos csomagokat telepítenék, mert a könnyűszerkezetes rendszerek általában viselnek ezeket, de ez Öntől függ.
 


Miért buherálják?


Mert egy minimális kernelmagon futó windowsnál nincs biztonságosabb a világon egy mezei felhasználónak. Ha minden felelsleges dolgot eltávolítunk a linuxból lecsupszítjuk úgy, hogy azért még rajta könnyen elmenjen egy virtuálizált windos  persze nem elég csak a videókártya és a hálókártya, de ki lehet kísérletezni.

Kernel fordítás 0.1.1:

A következőkben egy teljes kernel fordítását írom le. Nem patchelésről lesz tehát szó.
Amivel kezdened kell, hogy letöltöd a legfrissebb (stabil, tehát az x.szam.x-nél a szám legyen páros) kernelt. Ennek a www.kernel.org-on tudsz utánna nézni.
A letöltött kernel csomagolva lesz, vmi.tar.gz néven. Ezt kicsomagolva be kell másolni a /usr/src könyvtárba (mielőtt elfelejteném, természetesen mindezt root-ként kell végezned). Én javaslom az MC (midnight commander) használatát. Én úgy szoktam, hogy az usr/src-be csinálok egy könyvtárat, olyan névvel ami megmondja, hogy milyen kernelről van szó. Például most van egy usr/src/linux2214 nevű könyvtáram amiben a 2.2.14-es kernel source van. A linux2214 könyvtárra pedig mutat egy symlink, /usr/src/linux néven. Mindig így használd, tehát a symlinken keresztül lépj a könyvtárba (pl.: cd /usr/src/linux).
Négy módon tudsz a kernel fordításra előkészülni és a makefile-ket konfigurálni. Kézzel editálod (kezdőknek nem javasolt) Futtatod a make config-ot, ennek az a baja, hogy ha valamit elrontasz, újra kell kezdened a konfigurációt make menuconfig (én legtöbbször ezt használom), karakteres felületű,menüvezérelt konfigurálást tesz lehetővé make xconfig az előzőhöz hasonló, csak grafikus módban (én nem kedvelem)

Na szóval ha bemásoltad amit fentebb leírtam, először lépj be a linux könyvtárba, cd /usr/src/linux.
1., make clean (erre az első kernel fordításkor nincs szüség, de ha újra fordítasz akkor már igen)
2., make menuconfig (így nagyon kényelmesen tudod konfigurálni a kerneledet)
3., make dep (meghatározza a függőségeket)
4., make bzImage (létrehozza az új kernelt, tömörítve és elhelyezi a /usr/linux/arch/i386/boot könyvtárba, bzImage néven.
5., make modules (ha a kernel egyes részeit modulba konfiguráltad akkor szükséges. Szinte biztos van ilyen)
6., make modules_install (elhelyezi a modulokat a megfelelő könyvtárba)
7., a bzImage kernelt másold a /boot könyvtárba, és adj neki valami normális nevet, például kernel-2214.
8., készítsd el a gyökérből a rámutató symlinket és konfiguráld a lilót (a liló konfigurálását egy másik cikkben írom meg)
9., futtasd a lilót--> lilo .
10. Ha a rendszert újra bootolod , már indíthatod is az új kerneleddel.

Egy jó tanács: Mindig hagyd fenn a korábbi, jól működő kerneledet is. Csak akkor töröld ha az új kernel már mindenben okésan működik. Nálam mindig minimum három kernel van, két stabil, meg egy kísérleti.Természetesen a kernel fordításhoz is van részletes dokumentáció.

Linuxot többféleképpen szerezhetünk. Megrendelhetjük/megvásárolhatjuk például a hivatalos kereskedőtől, ilyenkor dobozban kapjuk, nyomtatott dokumentációval. Ennél egyszerűbb hozzájutni ismert számítástechnikai lapok CD-mellékleteként, vagy hálózatról letöltéssel. Letölteni általában lehet iso-t is, amivel egyből írhatunk install CD-t, de gyors hálózati kapcsolattal megáldottak számára érdemesebb a saját magát installálás közben letöltő változatot választani. Sok magyar ftp szerveren találhatunk linux mirrorokat.

Egy minimális install, ami már munkaállomásként is használható (értsd: nem csak szerverfunkciók ellátására), körülbelül 300 Mbyte helyet igényel. Emellett a linuxnak még szüksége lesz munkaterületre a logfile-ok és egyéb állományok tárolására, valamint a felhasználónak is nyilván kell majd élettér. Így a minimális ajánlott partícióméret 500M, persze minél nagyobb, annál jobb. Kis előrelátással - sokaknak ez visszatekintés, tapasztalat :P - rövidesen úgyis szükség lesz egyre és egyre nagyobb területre, szóval miért ne adjunk neki legalább 1G-t? Természetesen ez valószínűleg valamelyik másik partíció rovására fog menni, de valamit valamiért. A csomagok, amelyeket a hálózaton át le kell tölteni, tömörítve vannak, így adatmennyiség szempontjából a választott csomagok számától függően kb. 150-400M-ra kell számítani.

Első lépésként, ha nem CD-ről akarjuk installálni, érdemes bootlemezt készíteni. Az ehhez szükséges cuccost szintén a mirrorokon találhatjuk meg, általában beszédes nevű, például "disks" vagy "images" könyvtárban. Az ott található readme-k tartalmazzák a könyvtárban lévő állományok leírását, például Redhat-nál a bootnet.img-re lesz szükség a hálózatról installáláshoz. Ezek a file-ok floppy image-k, ezért nem a szokványos módon kell őket a lemezre másolni, hanem például - ha van kéznél installált, működő linux - a "dd if={image neve} of=/dev/fd0; sync" paranccsal. Ha nincs linux, akkor a "dosutils", vagy az image-ekkel azonos könyvtárban található rawrite.exe vagy rawrite2.exe fogja elvégezni a feladatot. Ez utóbbiak használata nagyon egyszerű, a helpjük tökéletesen elég a megértésükhöz.

Ha a lemez elkészült, akkor arról directory-t kérve DOS filerendszert találunk, rajta néhány file-t, ezek önmagukban nem érdekesek számunkra. Az itt található vmlinuz nevű állomány egyébként a linux kernel, ami tartalmazza a drivert az összes hálózati kártyához, scsi vezérlőhöz és mindenhez, amire az installáláshoz szükség lehet. Az installálás megkezdéséhez bootoljunk a floppyról vagy CD-ről. Választhatunk, hogy szöveges vagy grafikus kezelőfelülettel akarjuk installálni, mindkettőben maradéktalanul elérhetünk minden funkciót, tehát sok gyakorlati jelentősége nincs, hogy melyiket választjuk, ám általában text módban jóval hamarabb végezhetünk. Ha nem kínálná fel a gép a választás lehetőségét, az egeret kihúzva valószínűleg nem fogja erőltetni a grafikus módot. :) A felkínált "expert" lehetőség választása esetén teljes irányításunk lesz az installálás felett, így a telepítés valamivel tovább fog tartani, de a cél érdekében megéri a befektetett energiát.



A menük és egyebek:

A továbbiakban a Redhat installálóján keresztül mutatjuk be röviden a lényegesebb pontokat. A telepítőfelületben minden disztribúció különbözik, azonban a legfontosabb teendők mindenhol ugyanazok: partícionálás, csomagok kiválasztása, a rendszergazdai jelszó megadása és a linux loader (LILO) telepítése. Lépésről lépésre-leírás helyett általános receptet próbálunk adni, az önállóságra mindenképpen szükség lesz a későbbiek során is.

Az installálás módjának kiválasztása után a memóriába töltődik a kernel. Ez sorban felismeri a csatlakoztatott eszközöket, aktivizálja a megfelelő drivereket, az üzeneteiből pedig pontosan nyomon követhetjük, hogy mit is csinál éppen. Floppyról való installálásnál az egyik legelső szükséges lépés a hálózati kártya felismerése, hiszen a csomagokat a hálózaton át kell letöltenie telepítés közben. Amennyiben valamiért nem találná meg magától a kártyát, a felkínált listából a megfelelőt kiválasztva továbbléphetünk. A hálózat eléréséhez szükséges dolgokat tudnunk kell, így például az ip-címünket (ha statikus), átjárót (default gateway), stb., enélkül nyilván nem tudjuk elérni az ftp szervert. Nem árt, ha előrelátóan felírjuk a telepítés előtt az ftp szerver pontos nevét és a könyvtárat, ahol a disztribúciós fa található. Itt nem mindegy, hogy melyik szintig írjuk be az installálónak: Redhat esetén például a ../RedHat/i386 mélységig kell megadnunk a fát, mind ftp, mind NFS szerver esetén.

Az egyik legfontosabb dolog a merevlemez partícionálása. Ezt értelemszerű okokból nagy gonddal kell elvégezni, több szempontot figyelembe véve. Az általános helyelosztási megfontolásokon túl érdemes például arra ügyelni, hogy a swap partíció (erről kicsit később) lehetőleg ne essen távol magától az ext2 linux partíciótól, mert ezzel az elérési időt csökkenthetjük a gyakran használt lemezrészek között, így a hatékonyság nő. Másik létfontosságú szempont, hogy a LILO csak olyan helyről tudja betölteni a kernelt, azaz az operációs rendszert bootolni, amit a BIOS lát, mert bootoláskor még - a kernel hiányában - a BIOS rutinokat használja lemezelérésre. A későbbiekben a linux a BIOS-t figyelmen kívül hagyja. A telepítés első szakaszában a partícionáló program kerül elénk; természetesen, ha már megfelelően partícionált a merevlemezünk, nem szükséges azt megváltoztatni. Magát az operációs rendszert telepíthetjük több partícióra szétosztva is, ennek nagyon sok előnye van - főleg a későbbi frissítéseknél -, azonban erre valószínűleg az első installáláskor nem lesz szükség. A partíciókat a már bemutatott /dev/hdXX jelekkel láthatjuk azonosítva, ezekhez kell meghatároznunk a kezdeti mount point-ot, azaz azt, hogy a könyvtárszerkezetben melyik rész melyik partícióhoz tartozzon. Egyetlen pont, amit mindenképpen meg kell adnunk, az a "/", azaz a gyökérkönyvtár, maga a system partíció. Ha többet nem definiálunk, a teljes operációs rendszer minden alkönyvtárával együtt ezen a partíción fog helyet foglalni.

A linux virtuális tárkezeléskor használhat swap file-t a windows-nál megszokott módon, vagy swap partíciót. A swap partíció jelentősen gyorsabb, ezért mindenképpen ennek a használatát javasoljuk. A swap partíció mérete legyen kicsi, persze igényektől függő, de egy 200M-s méret már elég tekintélyesnek számít. Ha a partícionálás során nem jelölünk ki swap partíciót, az installáló program külön rá fog kérdezni.

A következő teendőnk a telepíteni kívánt csomagok kiválasztása. Ezek a package-k sajátos formátumban vannak tárolva: minden csomag tartalmazza magukat a szükséges állományokat, a dokumentációt - amennyiben ez nem külön csomagban kerül be a disztribúcióba nagy mérete miatt -, egy rövid leírást a csomagról, valamint a csomagkezelőnek az adminisztrációs és biztonsági szempontokból nélkülözhetetlen függőségi információkat. Vannak csomagok, amelyek mindenképpen szükségesek a működéshez, például a basesystem, amely az alap könyvtárstruktúrát tartalmazza, vagy az initscripts, amiben a bootoláskor és shutdown alkalmával lefutó scriptek találhatók. Dönthetünk, hogy csak nagyvonalakban jelöljük ki a telepíteni kívánt software-t (Install KDE Workstation/Install GNOME Environment, ...), vagy egyenként végigböngésszük a csomagokat, kiválasztva a nekünk szükségeseket. Kezdetben ki van jelölve sok csomag, ezek elég jól meg vannak választva, így az összeállítás nem igényel feltétlenül sok változtatást. Aránylag könnyű eligazodni a listában, mert kategóriákba van szervezve (Graphics/Games/Utilities/System/...), a csomagokhoz tartozó rövid információt pedig a válogatás közben is olvasgathatjuk. Ha a gép nem verné nagydobra a help elérési módját, a szokásos F1 taposásával általában jó eredményt lehet elérni.



Csomagok, szolgáltatások:

Kétféle elterjedt eredeti csomagkezelő használatos: az rpm (Redhathoz, Redhat Package Manager) és a deb (Debianhoz). Sajnos ezeket több más disztribúció is használatba vette, ezzel sok inkompatibilitási problémát okozva, például rpm-et használ még a SuSE és a Mandrake, valamint a deb-et átvette az újnak számító Corel Linux is. Mindkét csomagkezelő nagy gondot fordít a függőségek kezelésére: például egy több program által használt függvénykönyvtárat (shared library), melyet külön csomagban tartalmaz a disztribúció, mindenképpen fel kell telepítenünk, ha a rá épülő alkalmazásokat használni akarjuk. Ha a csomagválogatás közben kijelölünk installálásra valamit, amihez a szükséges csomag(ok)at esetleg nem választottuk ki, akkor a telepítő - egy kérdés után - automatikusan felteszi a szükséges dolgokat. Az installáláskor összeválogatott operációs rendszer összeállítása nem szentírás, a későbbiekben természetesen tetszés szerint tehetünk fel újabb csomagokat, vagy törölhetünk a fent lévőkből.

Több apróbb kérdésre kell még felelnünk a telepítés folyamán, például az időzónánk és a billentyűzetkiosztásunk, az egér típusa, stb., ezekre elég egyértelmű a válasz. A következő kérdés, amivel szembesülünk, hogy milyen szolgáltatásokat szeretnénk automatikusan, bootoláskor elindítani a gépen. Álljanak itt a példa kedvéért a legismertebbek:

network: A hálózati kommunikációért felelős programok

syslog: "system logger", a kernel- és egyéb üzeneteket rendszerbe fogó program, kvázi eseménynapló

crond: "cron daemon", a programok rendszeresen, meghatározott időpontokban vagy időközönként való futtatását irányító program

gpm: konzolon futó egérkezelő, copy-paste funkciókkal

sendmail: levélküldő- és fogadó agent

lpd: printer daemon, a nyomtatót vezérlő program

inet: "inetd", az univerzális, hálózati kapcsolatkérésekre figyelő program (egyre kevésbé használt, főleg biztonsági szempontokból)

A kezdetben ismeretlen elnevezésű dolgok céljára a gyakorlat során rájövünk, egyelőre a listában nyugodtan elfogadhatjuk a felkínált, alapértelmezett kiválasztásokat. Ezek után a rendszergazdai jelszó, a root password megadása következik. Aki ezt a jelszót birtokolja, az teljhatalmú ura a gépnek, viszont enélkül semmi változtatásra nincs lehetőség, ami a rendszer egészét érinti. Épp ezért nagyon fontos, hogy ezt ne tudja meg illetéktelen személy, és ne felejtsük el, mert igen kellemetlen következményei lehetnek; kényelmetlenség és elpazarolt idő egy rescue disk-ről, vagy LILO-ból single user módban bootolni, hogy a hibát kijavítsuk, vagy jogosultságunkat újból helyreállítsuk.

Mindjárt érdemes egy normál, userjogú felhasználót is létrehozni, erre az installáló rögtön itt lehetőséget is ad. Az alapelv az, hogy rendszergazdaként csak akkor legyünk bejelentkezve, ha arra ténylegesen szükség van, egyéb célokra az egységsugarú felhasználói hozzáférést használjuk. Ez a szokásos biztonsági megfontolásokon túl az operációs rendszer védelmét szolgálja saját magunk elől: rootként könnyű helyrehozhatatlan kárt tenni, a gép semmi törlési vagy írási műveletnek nem áll útjába, és ellentétben a FAT filerendszerrel, az ext2-n törölt állományokat NEM lehet visszaállítani, csak legfeljebb megbízhatatlan segédprogramokkal, mindenesetre sokkal kényelmetlenebbül, mint dos vagy windows alatt.



LILO és az X:

A telepítő ezek után megkérdezi, hogy a LILO-t hova kívánjuk tenni. Két lehetőség közül választhatunk: az MBR-be (Master Boot Record), vagy a boot partíció első szektorába. Amennyiben nem használunk más boot managert, nyugodtan tehetjük az MBR-be is; de mivel a LILO más operációs rendszereket is tud bootolni, általános célú boot managerként ugyanúgy használható. Ha a következő kérdésre, miszerint milyen paramétereket kívánunk bootoláskor átadni a kernelnek, nem tudjuk a választ, akkor ezt a mezőt nyugodtan üresen hagyhatjuk.

A telepítés utolsó lépése az X, a grafikus felület alapvető konfigurálása. Mivel az X maga eddigi élettörténetének legradikálisabb fejlesztési fázisán megy keresztül, ez a konfigurálási metódus nagyon könnyen megváltozhat, akár előfordulhat, hogy a következő kiadású disztribúciókban már teljesen másképp fog kinézni. A jelenlegi állapot szerint - és erre nyilván ezután is szükség lesz -, a monitor és a videokártya adatai a legelsők és legfontosabbak. Általában gond nélkül felismeri a telepítő a csatlakoztatott videokártyát, ha ez mégsem történne meg, egy tekintélyes listából kiválaszthatjuk azt. A monitorok felsorolása is elég kimerítő, amennyiben nem találjuk meg a sajátunkat, megadhatjuk magunk a maximális vízszintes és függőleges frissítési frekvenciákat, amelyeket a monitor könyvében megtalálunk.

Az installálás ezzel véget ért. Rebootoljuk a gépet - vegyük észre, ez az egyetlen reboot, amire installáláskor szükség volt/van -, és ha minden jól ment, a LILO prompt-hoz kerülünk. TAB nyomásával megnézhetjük a bootolható operációs rendszerek listáját, az ENTER pedig az alapértelmezettet bootolja, ami szerencsés esetben a frissen installált linuxunk lesz. A kernel már látott message-jein kívül a bootkor indításra kijelölt szolgáltatások start üzenetét is láthatjuk, majd ennek végeztével a login prompt-hoz kerülünk, ahol akár felhasználóként, akár rendszergazdaként bejelentkezhetünk, és csinálhatjuk a ..semmit, melyet a sorozat következő cikkében részletezünk. :ţ





Processzek:

A linux, mint minden modern operációs rendszer, teljes multitaszk képességekkel rendelkezik. Ez alatt azt kell érteni, hogy egymástól független programokat képes elszigetelten, látszólag egyszerre futtatni, és ehhez kihasználja a processzor hardveres támogatását. Nagyrészt ez biztosítja híres stabilitását is. A kernel egyik legfontosabb része az ütemező, amelynek feladata a futó programok (taszkok, processzek -> folyamatok) irányítása, szabályozása, és közöttük az erőforrások megosztása. Az ütemező dönti el, hogy egy adott folyamat a processzor teljesítményének hány százalékával rendelkezhet, a memória mekkora részét kaphatja meg és mikor. Ha egy taszk "szabálytalan műveletet" :) hajtana végre, a kernel kilövi és ezzel megakadályozza, hogy az operációs rendszer működésében bármi kárt okozhasson. Így felhasználói szintű programokkal linuxot kiakasztani elég reménytelen eset, az ennek ellenére ritkán fellépő ilyen jellegű hibákat pedig a kernel fejlesztői nagyon hamar kijavítják. A hibajavítások sebességének illusztrálására jó példa a Pentium processzorokon pár éve felfedezett, hírhedt F00F-bug, aminek megelőzésére a hiba napvilágra kerülésétől számított 4 órán belül megvolt a kernelpatch.

Linuxban minden folyamatnak van szülője. Egy processz indíthat több további processzt, amelyek az ő gyerekei lesznek. A különböző szolgáltatások mind processzként vannak jelen a rendszerben. Néhány fontosabb:

init: Az init a legelső induló processz. A kernel utolsó dolga bootoláskor ezt elindítani, és az init folytatja a bootolást, a megfelelő scripteket indítva, amelyek ellenőrzik és mountolják a filerendszereket és fellövik a daemon-okat (háttérben futó, általában kapcsolatkérésekre figyelő program, például ftp szerver, webszerver, vagy sshd). Több további funkciót tud még az init ellátni: biztosítja a single user módot, ahol senki sem tud távolról hozzáférni a géphez, csak a konzolhoz, rendszergazdai joggal, valamint a multiuser módot, ami a szokásos üzemelési formája egy linuxos gépnek. Normális működés esetén az init gondoskodik róla, hogy a getty processzek fussanak, amelyek a belépést teszik lehetővé, valamint örökbe fogadja azokat a processzeket, amelyeknek a szülője eltávozott az élők sorából (linuxban minden processznek egyazon "családfához" kell tartoznia, tehát az árvákat örökbe kell fogadni). A gép leállításakor az init feladata a többi processzt kilőni, a filerendszereket lecsatolni és a processzort halt-olni.

login-ok: A bejelentkezés, tehát a felhasználói névvel és jelszóval védett hozzáférés kezelése. Az init minden terminálhoz, legyen az soros vonalra kötött, vagy konzolon lévő virtuális terminál, ahol be lehet lépni, külön getty példányt indít. Ez beolvassa a felhasználói nevet, majd maga helyett elindítja a login programot, ami bekéri a jelszót. Ha mindkettő érvényes, elindítja a parancsértelmezőt, a shell-t. Ha ez leáll, azaz a felhasználó kilép, vagy még a login szakad meg, mert a jelszó nem volt helyes, akkor az init ezt észreveszi és a getty egy új példányát indítja el.

shell: Parancsértelmező. Funkciója nagyjából ugyanaz, mint a command.com-nak DOS alatt, de a modernebb shell-ek ennél nagyságrendekkel több és bonyolultabb dolgot tudnak, például filenév-kiegészítés, és szinte egy komplett programozási nyelv, amelyben a shell scriptek íródnak, ciklusokkal, feltételekkel, változókkal és filekezeléssel. Az egyik leggyakrabban használt shell, a bash2 tudását jól reprezentálja, hogy pl. a manual-ja (leírása) egyszerű text file-ban 280 Kbyte terjedelmű.

A filerendszer további részei:

Az ezelőtt már röviden ismertetett /dev mellett vannak még további könyvtárak, amelyeknek meghatározott funkciójuk van. Ezek nagyvonalakban:

/bin: A bootoláskor szükséges, és néhány, felhasználók által gyakran használt futtatható (bináris) állomány(ok).

/sbin: Ezek is binárisok, de azok, amelyekre általában csak a rendszergazdának van szüksége. Ezzel együtt, ha engedélyezett, normál felhasználóknak is elérhető.

/etc: A gépre vonatkozó konfigurációs állományok. A legtöbb rendszerszintű program konfigurációja itt foglal helyet, például az init-hez tartozó inittab, a filerendszereket leíró fstab, a jelszavakat (kódolt formában) tartalmazó passwd illetve shadow, de pl. redhat esetén itt találhatók a daemon-okat indító-leállító scriptek is.

/root: A rendszergazda a király

/lib: Könyvtári függvényeket tartalmazó bináris állományok, amelyek a futtatható programokhoz szükségesek. Ez nagyjából a Windows-ból ismert .dll-ek (dynamically linked library) linuxos megfelelőinek, a .so-knak (shared object) a gyűjtőhelye.

/lib/modules: Külön betölthető kernel-modulok, különös tekintettel azokra, amelyek a bootoláshoz szükségesek egy esetleges katasztrófa utáni állapot helyrehozásakor. (például hálózati eszközök és filerendszerek meghajtói)

/tmp: Ideiglenes file-ok. Sokféle program szó nélkül használhatja, és használja is ezt a könyvtárat átmeneti tárolásra.

/boot: A betöltő, például LILO által használt állományok. Sokszor maga a kernel is itt foglal helyet, nem a gyökérkönyvárban. Adott esetben megéri külön partícióra tenni. Ennek egyik nagy előnye, hogy könnyen elhelyezhetjük olyan területre, ami az első 1024 cilinderhez tartozik, így a BIOS látja, és a LILO tud róla kernelt bootolni.

/mnt: Könyvtár fizikai eszközök ideiglenes mountolásához. Programoknak nem illik ide maguktól bármit is mountolni, a rendszergazda kiváltsága, hogy ezen belül milyen könyvtárakat hoz létre, és mit hova csatol be.

/proc: Ez egy igen furcsa állat. Fizikailag nem is létezik semmilyen lemezen, csak a kernel képzeletében, amit egy könyvtárként jelenít meg számunkra, feltéve, hogy az ehhez szükséges támogatást a kernel tartalmazza (belefordították). Itt nagyon sok hasznos információt találhatunk a gépünkről, általában text file-ként érhetők el a könyvtárban lévő dolgok, például cpuinfo, pci. Emellett minden processzhez tartozik egy saját alkönyvtár benne, amelyben az adott folyamat dolgai találhatók.

/home: Az egységsugarú felhasználók home könyvtárai.

/usr: Általában a legnagyobb terjedelmű könyvtár a struktúrában. Az ezen belül található alkönyvtárak hasonlítanak a gyökérkönyvtárban találhatókhoz, itt is van bin, lib, stb. A legtöbb nem rendszerszintű program (például grafikus felület) alkatrészei ide kerülnek be.

/var: Azok az állományok vannak itt, amelyek futás közben íródnak, ill. megváltoznak. Tipikusan kisebb adatbázisok, a naplózó program logjai, meg szemaforok annak jelzésére, hogy bizonyos programok egy adott file-t vagy erőforrást lefoglalva tartanak.



Mi a Shell:

Ha sikerrel válaszoltunk a gép roppant bonyolult login/password kérdésére, a login elindítja a shell-ünket. Hogy ez melyik bináris file a merevlemezen, azt a /etc/passwd-ben található több mezője közül az egyik mondja meg. Ha ez például /bin/bash2, akkor az interaktív parancsértelmező jelentkezik, és várja parancsainkat. Ha a shell felismeri a parancsot, akkor vérehajtja, ha nem ismeri fel, akkor a megfelelő nevű file-t indítja el. Néhány, gyakran használt parancs:

ls: A dir megfelelője, file-ok kilistázására szolgál. Mint a linuxban általában, ez is számtalan paraméterrel szabályozható, a kijelzés színezhető, rendezhető. (list)

rm: Agresszív rendszergazdák legkedvesebb jóbarátja, állományok, vagy - megfelelő paraméterrel kisegítve - teljes könyvtárstruktúrák rekurzív és végérvényes törlésére. (remove)

cp: Állományok vagy könyvtárak - akár rekurzív - másolására szolgáló parancs. Jól használható természetesen különböző filerendszerek közötti másolásra is, például egy NFS-en (hálózaton) át mountolt helyről a helyi merevlemezre. Ilyenkor a kernel a hálózaton áttölti a cuccost. (copy)

mv: Mozgatásra vagy átnevezésre szolgál, azaz az eredeti file/könyvtár nem marad meg. (move)

ln: Ennek a dos/windows környezetben nincs megfelelője, bár funkciójában a .lnk kiterjesztésű file-ok hasonlítanak rá. Linket (általában szimbolikusat), azaz mutatót hozhatunk létre a segítségével, ami egy állományra vagy könyvtárra mutat. Ilyenkor a linkre történő hivatkozás (írás, olvasás) olyan, mintha az eredeti file-ra hivatkoztunk volna. Például ezzel a módszerrel mutat a /dev/mouse a /dev/ttySX-re (soros port) vagy /dev/psaux-ra (PS/2 device). (link)

cat: Az ismert nyávogó funkcióján kívül alkalmas még adatok továbbítására a megadott input-ról a megadott output-ra is. Ha valamelyiket nem adjuk meg (esetleg egyiket sem..), akkor az a standard input/output lesz. Megadhatunk neki például file-t inputként, az alapértelmezett output pedig a képernyő lesz, így - magyarul - ki fogja listázni a file tartalmát. (catenate)

mkdir/rmdir: Könyvtárak létrehozására/törlésére való.

Ezeknek a filekezelő parancsoknak a használatát meg lehet kerülni file manager, például mc (Midnight Commander) használatával, azonban sokszor kerülhetünk olyan helyzetbe, hogy ez nem elérhető, ezenkívül sok esetben ezek a parancsok hatékonyabban használhatók a menüvezérelt programoknál.


Lilo confja:

A lilo konfigurálása. A lilo a linux boot managere. Ő felelős a rendszer betőltéséért. A konfigurációs fájl az /etc-ben található, lilo.conf néven. Mint már a kernel fordítás cikkben említettem, egy kernel fordítás után a lilót is konfigurálnod kell. Emlékeztetőként, a lefordított kernel a /boot könyvtárban van, legyen a neve kernel-2214. A gyökérből pedig egy symlink mutat rá, aminek a neve: vmlinuz. Természetesen ha modulokat is fordítottál a kernelhez akkor azok a /lib/modules valamelyik alkönyvtárában vannak, de ez a lilo konfigurálásánál nem játszik szerepet. Ekkkor a lilo.conf igy fog kinézni (példa):

boot=/dev/hda -->itt van a boot (a hda stb-ről a másik cikkben olvashatsz)
root=/dev/hda3

install=/boot/boot.p
map=/boot/map
vga=normal
delay=25 --> ennyi tizedmásodpercet vár mielőtt elindítja a default op.rendszert

<--- Most jön a kernel beállítása --->

image=/vmlinuz
label=vmlinuz
read-only

<--- és ha még van fent mondjuk windows is --->

other=/dev/hda1
label=windows

Ennyi. Ezekután még a promptnál be kell írni, hogy lilo és vége. Természetesen ha több kernel is van lefordítva, akkor a 'Most jön...' részt a megfelelö adatokkal ismételni kell. Hogy biztos érthető legyen itt van az én lilo.conf-om.

boot=/dev/hda
root=/dev/hda3
install=/boot/boot.b
map=/boot/map
vga=normal
delay=25

image=/vmlinuz
label=vmlinuz
read-only

image=/kernel2214
label=kernel2214
read-only

image=/kernel2399
label=Linux2399
read-only
other=/dev/hda1 label=dos





Néhány script:

Egy linux rendszerben a legtöbb fontos funkciót scriptek csinálják. Ezeket a shell értelmezi és hajtja végre, általában - a kompatibilitás miatt - sh, a bash elődje, mert ez a legtöbb szabvány Unixon megtalálható. A bootkor lefutó scriptek a legtöbb disztribúciónál az rc.sysinit és az rc, ezek ellenőrzik a filerendszereket, és indítják el a daemon-okat.

A daemon-ok (sshd, ftpd, nfsd, stb.) saját scriptekkel rendelkeznek, amelyek a /etc/rc.d/init.d-ben (Redhat, Mandrake), /etc/init.d-ben (Debian), vagy a /etc/rc.d-ben (SuSE) találhatók. Ezeknek a szokásos paraméterei általában start, stop, restart, esetleg reload, az ftpd példáján bemutatva:

/etc/rc.d/init.d/ftpd restart

Ez a parancs leállítja az ftp szervert, majd újraindítja. Akkor van erre szükség, ha például a konfigurációt megváltoztattuk, ilyenkor a szerver a változásokat életbe léptetve működik tovább. Némely daemonok, amelyek a reload parancsot is támogatják, a konfigurációt újraolvastatják a szolgáltatás leállítása nélkül, így például a letöltések nem szakadnak meg. Hasonlóképpen vonatkozik ez a hálózati, ip- és egyéb beállításokra, egérdriverre, így nem kell a változtatások elvégzésekor rebootolnunk. Ez egyébként kézenfekvő, mert egy olyan operációs rendszernél, amely elsősorban szerverfunkciókra és megbízhatóságra lett tervezve, nem járható út a gép újraindítgatása a beállítások tekergetésekor.

Mostanra a linux régi, hagyományos problémái sokat javultak. Így például jó a konfigurálás lehetősége: a disztribúciók tartalmaznak olyan rendszergazdai felületet, ahol egy helyen gyakorlatilag mindent be lehet állítani, a felhasználók adminisztrálásától a filerendszereken és a szolgáltatásokon át a modem, a LILO illetve a rendszeróra paraméterezéséig (yast/linuxconf). Egy linuxos rendszergazdának, ha nem sokfelhasználós, komoly szervernek használja a gépet, ritkán kell más segédeszközhöz nyúlnia a gépe üzemben tartásához, mint a konfiguráló segédprogram és a szolgáltatásokat irányító scriptek. Egy screenshot saját képernyőmről (RH 6.2, gnome-linuxconf):



Job control:

A felhasználó irányítással rendelkezik saját processzei (futó programjai) fölött. Beavatkozhat, állíthatja a prioritásukat, felfüggesztheti és folytathatja, vagy véglegesen leállíthatja őket. Mindehhez nincs közük a programoknak, ők erről nem tudnak, és nem is kell tudniuk, hiszen a beavatkozásokat a kernel végzi. A shell is tartalmaz beépített funkciókat a processzek irányítására, így például a bg (background) paranccsal tudunk egy, a shell gyermekeként született, de felfüggesztett programot további futásra utasítani, és az fg paranccsal tudjuk előtérbe hozni. A jobs segítségével megnézhetjük, hogy kedvenc shellünk milyen processzeket szült; ezek sorszámozva vannak, ezekkel a számokkal hivatkozhatunk rájuk a bg, illetve fg parancsoknál.

Egy program, amit a shellből indítunk (többnyire: begépeljük a nevét), alapértelmezés szerint általában "előtérben" fut, azaz a promptot nem kapjuk vissza addig, amíg be nem fejeződött, az esetleges inputot pedig a program tőlünk várja. Ha a program neve mögé egy & jelet teszünk, a shell automatikusan a háttérben indítja el. Ugyanez történik, ha felfüggesztünk valamit, és a bg paranccsal háttérbe küldjük. Ekkor a promptot visszakapjuk, a shell továbbra is várja a parancsainkat, ennek viszont az a következménye, hogy a billentyűzetről nem tudunk közvetlenül kommunikálni a háttérbe tett programmal, hiszen amit beírunk, el sem jut hozzá. A processz kimenete (ahova ír) viszont változatlan marad, tehát például az általa kiírt szöveg ugyanott jelenik meg, ahol elindítottuk, így alkalmasint a képernyő összekuszálódhat, keveredhetnek a beírt dolgok a kijelzettekkel. Ebben az esetben a CTRL+L lenyomásával a képernyőt frissíthetjük, a szemetet eltüntethetjük.

Shelltől függetlenül is megnézhetjük a futó processzek listáját ps paranccsal (sokféleképp paraméterezhető). Minden processz PID-et (Process Identification Number) kap a kerneltől, ezek a célszerűség kedvéért sorban számozódnak a gép indítása óta. Az összes programot elérhetjük, ha ezzel a számmal hivatkozunk rá, melyet a ps is kijelez. A processzeknek jelzéseket (SIGNAL) küldhetünk, amelyekkel utasíthatjuk - szintén shelltől függetlenül - őket például befejezésre (SIGTERM), felfüggeszthetjük (SIGSTOP), újraindíthatjuk (SIGCONT), vagy feltétel nélkül, erőszakkal, a kernel segítségével kilőhetjük (SIGKILL). Erre az utóbbi lépésre akkor lehet szükség, ha valamelyik program beragad és nem válaszol, egyéb esetben nem célszerű alkalmazni.

További nagyon hasznos segédprogram a top, amellyel folyamatosan nézhetjük, hogy mely processzek futnak milyen prioritással, és mekkora erőforrásokat használnak.


A kernel

A Linus Torvalds és társai által fejlesztett program nem egy teljes operációs rendszer, hanem annak csupán a magja, a kernel. A kernel biztosítja az operációs rendszer alapvető feladatait felügyeli a programok futását, gazdálkodik a processzorral vagy processzorokkal (ütemezés) és a memóriával, elérhetővé teszi a különféle a számítógépben található eszközöket és kezeli a számítógép fájlrendszerét. Nem tartalmazza viszont a kernel a felhasználói felületet szolgáltató programokat (karakteres vagy grafikus környezet) és a számítógép használatához szükséges segédprogramokat sem.
Nem része a kernelnek a betöltését végző program sem. Korábban főleg a LILO (Linux Loader), mostanában inkább a GRUB (Grand Unified Boot) rendszerbetöltő programokat szokták használni. Ezek képesek a Linux rendszermag betöltésére és elindítására vagy át tudják adni a vezérlést egy másik rendszerbetöltőnek, egy eltérő operációs rendszer (pl. Windows) betöltése érdekében. A számítógép indításakor többféle ilyen lehetőség közül is választhatunk, ezek közül egy alapértelmezett egy megadott idő után automatikusan is elindulhat. A rendszerbetöltők így lehetővé teszik többféle operációs rendszer telepítését egy számítógépre.

Rendszerbetöltő menüje karakteres felületen
A Linux kernel monolitikus, de moduláris felépítésű. Monolitikus, mert nem egy teljesen lecsupaszított mikrokernelt használ, amihez a külön folyamatként csatlakoznak az operációs rendszer további feladatait megvalósító programok. A monolitikus kernelből adódó hátrányokat a Linux a kernelmodulok segítségével igyekszik kiküszöbölni. A kernelnek a modulokban elhelyezett részét opcionálisan, egy külön fájlból tudjuk betölteni. Jellemzően modulokban helyezkednek például el a kernelnek a különféle eszközök kezelését lehetővé tévő részei, vagyis az adott eszközök meghajtói.

15.3.2 Programok futtatása

A Linux több program egymással párhuzamos futtatását teszi lehetővé. Az egymás mellett futó programoknak meg kell osztozniuk a számítógép erőforrásain úgy, hogy egy program hibás működése ne okozzon fennakadást a többi program számára. Ennek a biztosítása az operációs rendszer feladata.
Az egymás mellett futó alkalmazások száma jellemzően többszöröse a számítógépben található processzormagok számának, így a programoknak időben kell megosztozniuk a processzoron, amit az operációs rendszer ütemezőnek nevezett része szabályoz. Gyorsan váltogatva a futó programok között, azoknak néhány ezred- vagy századmásodperces kis szeleteket juttatva a processzor idejéből elérhető hogy akár egy csak egyetlen processzort tartalmazó gépen is (látszólag) egyszerre tud futni több program.
A számítógép másik fontos, a futó programok között elosztandó erőforrása a memória. A felhasználói programok meghatározott méretű memória részeket tudnak igényelni (majd később, ha nincs már rá szükségük felszabadítani) az operációs rendszertől, amelyre nem a valós (fizikai) hanem virtuális címek segítségével hivatkoznak majd. Az operációs rendszernek a memóriagazdálkodásért felelős részei a virtuális címeket valós címekre fordítják le, és biztosítják, hogy egy program nem tudjon hozzáférni a nem általa használt memóriaterületekhez.
A virtuális címzés lehetővé teszi, hogy a régebben használt memóriaterületek tartalmát a háttértárolóra kiírják, ahonnan szükség esetén visszaolvashatóak. A program a visszaolvasás után ugyanazon a virtuális címtartományon éri el a memóriának ezt a részét, mint korábban, így a működésébe ez (a visszaolvasáshoz szükséges időt leszámítva) nem okoz fennakadást. Ez a megoldás lehetővé teszi, hogy a programok összességében több memóriát foglaljanak le, mint amennyi RAM a számítógépben rendelkezésre áll.
A rendszer indításakor és a használata során egy összetett inicializációs folyamat gondoskodik a szükséges programok elindításáról, illetve a szükség esetén történő újraindításáról. Ezek között a programok között vannak a rendszer megfelelő működése érdekében a háttérben futó programok, különféle esetenként más számítógépekről is elérhető szerverprogramok, valamint a felhasználók részére a bejelentkezést valamilyen módon (karakteres terminál, grafikus felület, hálózaton keresztül) biztosító programok.

15.3.3 A fájlrendszer felépítése

A Linuxban a fájlrendszer egyetlen fából áll, aminek alapját a gyökér fájlrendszer szolgáltatja. A különféle háttértárolókon vagy hálózati helyeken elhelyezkedő fájlrendszerek már meglévő üres könyvtárakban csatlakozhatnak ehhez a rendszerhez. Ennek az elvnek az alkalmazásával minden számítógépen egyetlen egységes felépítésű fába rendeződnek az állományok, miközben a fájlrendszer egyes részei esetenként különféle háttértárolókon vagy hálózati helyeken helyezkedhetnek el.
Általában a telepítés során, a merevlemez particionálásakor lehet kiválasztani, hogy az egyes partíciókra milyen fájlrendszer kerüljön. Fájlrendszer alatt ebben a bekezdésben most azt a rendszert értjük, ami lehetővé teszi egy merevlemez-partícióhoz vagy más eszközhöz tartozó adott méretű blokkszerű adatterületen könyvtárakba rendezett fájlok adatainak és attribútumainak tárolását. A Linux sokféle fájlrendszert támogat (ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs), ezek különféle tulajdonságokkal jellemezhetőek, egymáshoz képest különféle előnyökkel és hátrányokkal rendelkeznek, amelyek ismeretében a szakemberek kiválaszthatják az egy feladatra leginkább megfelelőt; egyszerű felhasználóként a legbiztosabb a disztribúció telepítője által felkínált alapértelmezésnél maradunk. Vannak olyan fájlrendszerek is, amelyeket más operációs rendszerekkel vagy különféle eszközökkel való kompatibilitás miatt támogat a Linux, mint például a vfat és az ntfs vagy CD és DVD lemezek adatait tároló iso9660.
A fájlrendszernek fontos szerep jut mivel a UNIX-szerű operációs rendszerek egyik alapelve, hogy mindent fájlokba képeznek le. A UNIX-szerű operációs rendszerek egy másik fontos alapelve is kapcsolódik a fájlrendszerhez: minden beállítást fájlokban, jellemzően olvasható szöveges állományokban tárolnak.
A Linux fájlrendszere a UNIX szokásait követve elsődlegesen nem szoftverenként, hanem feladatonként tagolt. Mivel nincsenek betűjelekkel megkülönböztetett meghajtók, egy fájl minden esetben ugyanott található meg.
A fájlrendszer gyökerét „/” karakterrel is jelöljük. Szintén a „/” karakter szolgál arra, hogy az elérési útvonalban a könyvtárakat elválasszuk egymástól. Amennyibe az elérési útvonal a „/” karakterrel kezdődik, abszolút, a fájlrendszer gyökerétől értelmezendő, egyébként relatív, az aktuális könyvtárhoz viszonyított.
Az aktuális könyvtárra a „.”, a szülő könyvtárra a „..” néven lehet hivatkozni. A felhasználók alapértelmezett, úgynevezett „home” könyvtárát a „~” néven lehet elérni.
A fájlrendszer felépítése a Filesystem Hierarchy Standard szabványt követi. A legalapvetőbb programok /binés a /sbin könyvtárakban találhatóak, az előbbiben a minden felhasználó számára, az utóbbiban a csak a rendszer adminisztrátorának szükséges alkalmazások. Az ezeknek a programoknak szükséges függvénykönyvtárak állományai /lib könyvtárban találhatóak.
A legtöbb program a /usr könyvtárban található. Az /usr/bin és az /usr/sbin könyvtárakban a futtatható programok, az /usr/lib könyvtárban a bináris programok függvénykönyvtárai helyezkednek el. A /usr/sharekönyvtár a programok platformfüggetlen állományait tartalmazza. Ha valamelyik programnak a forráskódja is telepítve van, az a /usr/src könyvtárba kerül. Amennyiben egy függvénykönyvtárat a számítógépen lefordítandó programokban is használni akarunk, az /usr/include könyvtárba kerülnek azok a fejlécállományok, amelyekre az osztott könyvtárak állományain túl még ebben az esetben szükségünk van. Az /usr/local könyvtár alatt szintén megtalálhatóak a fenti alkönyvtárak, ezek az adott számítógépre egyedileg (jellemzően forrásból) telepített programokat tartalmazzák.
/usr könyvtár tartalma a számítógép mindennapi használata során, ha nem telepítünk újabb programokat vagy távolítunk el illetve frissítünk meglévőket, nem változik; ezért a biztonság fokozása érdekében sokszor külön meghajtóra helyezik, és onnan csak olvasható opcióval csatolják fel a gyökér fájlrendszer üres /usrkönyvtárába. Azok az állományok amelyek a programok normál működése közben is változhatnak, de nem kötődnek szorosan valamelyik felhasználóhoz (mert akkor annak a home könyvtárába kerülhetnének), a /varkönyvtárban helyezkednek el. A /var/log könyvtárba kerülnek például az egyes folyamatok naplóállományai. A /var könyvtár alatt találhatóak egyes szerverfolyamatok futtatására használt felhasználók home könyvtárai is.
/home könyvtárban találhatóak a felhasználók könyvtárai. Egy felhasználó minden adata (munkája során használt állományok, programok felhasználóra vonatkozó beállításait tartalmazó fájlok) ebben a könyvtárban (pl. /home/felhasznalo) található. A root felhasználó könyvtára a /root könyvtár, így a rendszer adminisztrátora akkor is képes bejelentkezni és a legalapvetőbb programokat használni, ha a /usr és a /homekönyvtárak tartalma a gyökértől eltérő meghajtón helyezkedik el, és azok valami miatt nem csatolhatóak fel.
Az ideiglenes állományok a /tmp, a /var/tmp vagy a felhasználó könyvtárában lévő tmp könyvtárba kerülhetnek.
Az egyes programok konfigurálását a /etc könyvtárban található konfigurációs állományok segítségével tudjuk elvégezni. A programok felhasználói szintű beállításai nem itt, hanem a felhasználó könyvtárán belül helyezkednek el.
A /dev könyvtárban találjuk az eszközfájlokat. Ezeken a speciális fájlokon keresztül férhetünk hozzá közvetlenül a számítógépnek az operációs rendszer által kezelt eszközeihez. Kétféle eszköz létezik: karakteres és blokk. Blokkok például az egyes merevlemezeket vagy azok partícióit leképező eszközfájlok. Ezek a leképezett eszköz méretével megegyező méretű állományok, melyek tartalmához bármilyen programmal hozzáférhet a megfelelő jogosultsággal rendelkező felhasználó. A karakteres eszközök a blokk eszközökkel ellentétben nem véletlen elérésűek, hanem egy input vagy output adatfolyamot képeznek le, mint például a számítógép soros vagy párhuzamos portja.
/boot könyvtárban a rendszerbetöltő számára szükséges állományok kapnak helyet. Itt található meg általában Linux kernelt tartalmazó állomány is. Egyes esetekben a /boot könyvtárat külön partíción helyezik el, hogy tartalma a lemez elejére kerüljön.
/proc könyvtárban a kernel és a futó programok egyes adatait érhetjük el. A gyökér fájlrendszer üres /prockönyvtárába ennek érdekében egy speciális fájlrendszert csatolnak fel. A /proc/modules állomány tartalmát lekérdezve megkapjuk a betöltött kernelmodulok listáját, a /proc/1234/limits fájl tartalmából pedig a 1234 sorszámú folyamat (hogy van-e ilyen, és hogy micsoda, az esetenként változik) számára beállított korlátokat.
Az alkalmilag felcsatolt fájlrendszereket (Ilyenek például cserélhető eszközök vagy más operációs rendszerek által is használt partíciók fájlrendszerei, vagy sokszor a hálózati fájlrendszerek) a /mnt vagy a /mediakönyvtáraiba szokás felcsatolni. Napjaink felhasználóbarát Linux disztribúciói egy USB mass storage eszköz (például egy pendrive) vagy egy DVD lemez behelyezését követően automatikusan létrehoznak egy alkönyvtárat és felcsatolják oda a kérdéses eszközön található fájlrendszert. Egy klasszikus Unix rendszerben ezt a feladatot egy a felhasználó által kiadott mount parancs végezné el, például a mount -t vfat /dev/sdb1 /media/pendrive paranccsal lehet felcsatolni az rendszer által másodlaogs SCSI eszközként emulált USB-s adathordordozónk első (és egyetlen) FAT típúsú partíciójának tartalmát a /media/pendrive könyvtár alá.
A fájlrendszerben lehetőségünk van linkek használatára is. Ennek leggyakrabban használt formája a szimbolikus link vagy más néven puha (soft) link. A szimbolikus linkek speciális állományok, amelyek egy másik állomány elérési útvonalát tartalmazzák. A link teljesen egyenértékűen használható azzal a fájllal vagy könyvtárral, amire hivatkozik. Az elérési útvonal, amire mutat, tetszőleges lehet, akár egy nem létező állományra is hivatkozhat, ami esetén természetesen nem lesz a szimbolikus link használható, de amint létrejön a megadott fájl, a linken keresztül elérhető lesz.
A linkek másik típusa a kemény (hard) link. Ez úgy működik, hogy egy fájlra több, egymással egyenrangú bejegyzés is mutat. A fájl törléséhet valamennyi rá mutató bejegyzést törölni kell. Kemény linket létrehozni a működési elvéből adódóan csak azonos fájlrendszeren lehetséges.

15.3.4 Jogosultságok a fájlrendszerben

A Linux a többi UNIX-szerű operációs rendszerhez hasonlóan olvasási (r), futtatási (x) és írási (w) jogokat ismer amiket a fájl tulajdonosához (egy felhasználó), a fájl csoportjához (egy felhasználói csoport tagjai) és a többi felhasználóhoz rendelve tudunk meghatározni.
Az olvasás a fájl vagy a könyvtár tartalmának olvasását jelenti. Az írási jog ahhoz szükséges, hogy módosítani tudjuk a tartalmát vagy törölni tudjuk. A futtatás szükséges ahhoz, hogy egy végrehajtható kódot tartalmazó állományt a felhasználó elindítson, vagy egy könyvtárba beléphessen.
Egy adott műveletet egy felhasználó egy fájlon akkor tud végrehajtani, ha:
  • a felhasználó a root felhasználó
  • vagy a felhasználó a fájl tulajdonosa és a fájl tulajdonosa rendelkezik a szükséges jogosultsággal
  • vagy a felhasználó tagja a fájl csoportjának és a fájl csoportja rendelkezik a szükséges jogosultsággal
  • vagy a többi (other) felhasználó rendelkezik a szükséges jogosultsággal
A háromféle jogosultság (írás, olvasás, futtatás) és a háromféle jogosult (tulajdonos, csoport, többiek) kombinációiból kilenc egymástól függetlenül beállítható jog keletkezik.
Külön speciális jogosultság a setuid, amivel a fájl tulajdonosa azt tudja engedélyezni, hogy más, a fájl futtatására jogosult felhasználók a fájlba található programot az ő nevében futtathassák. Ez lehetőséget nyújt arra, hogy egyes, csak a root által elvégezhető műveleteket más felhasználók is végrehajthassanak, de egyben egy komoly biztonsági kockázatot is jelent, amennyiben az engedélyezett programban valamilyen kihasználható hiba van, aminek következtében a program eredetileg nem tervezett műveletek végrehajtására is használható.
A Linuxban nincs az állományoknak rejtett vagy rendszer attribútuma. Ha azt szeretnénk, hogy egy állomány rejtett állományokhoz hasonlóan viselkedjen, a nevét ponttal kell kezdeni. A ponttal kezdődő nevű állományokat egyes felhasználói programok megfelelő beállítások mellett nem jelenítik meg, így nem zavar például a home könyvtárunkban elhelyezkedő sok speciális állomány és könyvtár egy dokumentum kiválasztásakor.

15.3.5 Felhasználók kezelése

A Linux többfelhasználós operációs rendszer. A rendszert használni, a programokat futtatni többféle felhasználóval, felhasználónként eltérő jogosultságokkal lehetséges.
Többfelhasználós rendszerek egyik fontos kérdése az autentikáció, vagyis a felhasználók megbízható azonosítása. Ez általában a felhasználónév és a jelszó megadásával történik egy karakteres vagy grafikus felületű beléptető program segítségével.
A másik fontos feladata egy többfelhasználós rendszernek az autorizáció, vagyis annak eldöntése, hogy a felhasználónak (a felhasználó által futtatott programoknak) milyen műveletekhez van jogosultsága. Ez a UNIX rendszerek minden fájl filozófiájával összhangban általában fájlok jogosultságain keresztül szabályozható a fájlrendszernél bemutatott módon, esetleg egyes programok esetében konfigurációs fájlokon keresztül lehet jogosultságokat beállítani.
A root (gyökér) felhasználó minden jogosultsággal rendelkezik. Ezt a felhasználót a rendszer adminisztrátora szokta használni. Egyes a háttérben futó folyamatok részére külön felhasználókat és felhasználói csoportokat hoznak létre, mert amennyiben nem feltétlenül szükséges, biztonsági okokból nem célszerű azokat a minden jogosultsággal rendelkező root felhasználó nevében futtatni.
A felhasználó és a csoport neve helyett a háttérben egy sorszámot használ a rendszer. Ezt a sorszámot tárolja a fájlok jogosultságaival kapcsolatban is.

Ubuntuban a leggyakoribb telepítőfájlok (.deb kiterjesztésű fájlok) futtatása pofon egyszerű. A fájlkezelőben ha duplán rákattintasz egy ilyen típusú fájlra, megnyílik az Ubuntu szoftverközpont, majd ott a jelszavad megadása után telepítheted is a programot (más kérdés, hogy az így telepített program nem lesz automatikusan frissítve, neked kell figyelned az adott program honlapját, ha új verziót szeretnél telepíteni).
Ámde egyrészt sok Debian-, vagy akár Ubuntu alapú linux disztribúcióban nincs alapból telepítve az Ubuntu szoftverközponthoz hasonló program (tudom ajánlani persze a GDebi telepítését is), másrészt vannak olyan telepítőfájlok (pl. a shell script alapú telepítők), amik csak parancssorból futtathatók.
Ebben a bejegyzésben átnézzük a Debian és Ubuntu alapú linux disztribúciókban szereplő egyes telepítőfájlok parancssorban történő telepítésének módszerét.
Parancssort Ubuntuban például a ctr + alt + t billentyűkombinációval lehet megnyitni. Ekkor a parancssor egy grafikus felületi ablakban nyílik meg. Más disztribúciókon ez a billentyűkombináció általában nem működik, de valamilyen tálca ikonról el lehet indítani a grafikus felületi ablakban megnyíló parancssort (általában terminálnak, vagy konzolnak hívják), de mivel akár egy disztribúció is használható különböző grafikus felületekkel is (pl. gnome, kde, unity, mate, cinnamon, phanteon, lxde, xfce, satöbbi), ezért itt most nem részletezem, hogy az egyes grafikus felületeken hol lehet megtalálni a terminál ikonját.
Létezik egy másik billentyűkombináció, a ctr + alt + f1, mely esetén a grafikus felülettől független, úgynevezett virtuális terminált nyílik meg a teljes képernyőn, aminek a használatához külön be kell jelentkezni. Erről a parancssoros munkamenetről alt + f7-tel lehet visszatérni grafikus felületre. Biztonsági okokból érdemes lehet kijelentkezni a parancssoros munkamenetből egy egyszerű exit paranccsal, ha már nincs rá szükség.
Egyébként egy korábbi cikkemben már említést tettem erről a billentyűkomninációról, ha a grafikus felületen befagy egy program, akkor a ctr + alt + f1 billentyűkombinációt és a htop programot szoktam használni az adott program leállítására, ami az esetek többségében beválik.
(Más linux disztribúciókon (pl. CentOS) előfordulhat, hogy a ctr + alt + f1 helyett más billentyűkombinációval lehet előhozni egy ilyen parancssoros munkamenetet).
Linuxon a programok telepítéséhez rendszergazda jogosultság szükséges. Számos disztribúcióban ha egy parancs elé írjuk, hogy sudo, akkor az a parancs rendszergazda jogosultsággal lesz futtatva. Ekkor a saját felhasználónk jelszavát kell megadnunk. Persze ez csak akkor működik, ha a felhasználónevünk szerepel a sudo csoportban (ezt a groups paranccsal tudjuk megnézni), de az otthoni gépünkön ez szinte biztos, hogy így van.
Ha olyasmi hibaüzenetet kapunk, hogy "not enough permissions", vagy "acces denied", akkor megoldás lehet, ha az adott parancs elé sudo-t írunk.
Ha nem akarunk minden parancs elé sudo-t írni, akkor futtassuk a sudo -s parancsot, így azt követően minden parancs rendszergazda jogosultsággal lesz végrehajtva, egészen addig, amíg amíg ki nem lépünk exit vagy logout paranccsal, vagy be nem zárjuk a parancssort.
Az is elképzelhető, hogy a fájl tulajdonosát, illetve a jogosultságokat is módosítanunk kell, ahhoz, hogy egy fájlt futtatni tudjunk. A fájl tulajdonosának módosítása:
chown felhasználónév:csoportnév elérési_út/fájlnév
Futtatási pedig jogot a következő paranncsal tudunk adni egy fájlnak:
chmod u+x elérési_út/fájlnév
Ha egy egész könyvtár tartalmát módosítani akarjuk, akkor pedig így használjuk ezen parancsokat:
chown -R felhasználónév/csoportnév elérési_út/könyvtárnév
chmod -R u+x elérési_út/könyvtárnévDebianban sudo helyett su root parancs van, és ekkor nem a saját felhasználónevünk jelszavát kell megadni, hanem a root (rendszergazda) felhasználó jelszavát.)
.deb kiterjesztésű fájlok telepítése Ubuntu szoftverközpont, vagy GDebi nélkül
(Pl. mondjuk a Steam, vagy a Virtualbox telepítőfájljai).
Parancssorban lépjünk be abba a könyvtárba, ami tartalmazza a telepítendő .deb kiterjesztésű fájlt. Pl. cd ~/Downloads/ paranccsal.
A telepítéshez futtassunk egy ehhez hasonló parancsot:
sudo dpkg -i ./steam.deb
Majd a program függőségeinek telepítéséhez futtassuk a következő parancsot:
sudo apt-get install -f
Telepítés apt-vel
Debian alapú Linuxokon (pl. Debian, Ubuntu, Linux Mint, Elementary OS, Zorin OS) dpkg csomagkezelő van. Ennek a népszerű frontendje (egy olyan program, ami a dpkg-n alapul, de kényelmesebben használható) az apt. Az apt-vel sok programot telepíthetünk parancssorban, ami alapból nincs telepítve (disztribúciófüggő, hogy milyen programok vannak alapból telepítve). Ezek lehetnek akár grafikus felületen, vagy parancssorban futó programok (pl. Midnight Commander, htop, strings). Például a htop (parancssorban futó feladatkezelő) így telepíthető:
sudo apt-get install htop
Egyszerre akár több program is telepíthető: sudo apt-get install htop mc
Az apt-vel alapból telepíthető programok között apt-cache search kifejezés paranccsal lehet keresni. Például: apt-cache search emacs