[itk] Számítástechnika kezdőknek

Linux terminál parancsok kezdőknek

[2022. május 03.] [ christo161 ]

Ebben a tananyagban linuxos parancsokról lesz szó. Az itt felsoroltak közül sok parancs működik a különböző Linux disztribúciókon, vagy akár Unix alapú rendszereken (pl. OS X, BSD, Solaris), viszont egyes parancsok csak  Ubuntu alapú Linux disztribúciókon működnek.
Ebben a tananyagban nem lesz szó telepítésről. Arról egy másik tananyag szól: programok telepítése parancssorban.

Tartalom

Parancsok futtatására alkalmas programok

Grafikus felületen

Ubuntuban alapból telepítve van a gnome-terminal és az xterm. A gnome-terminalt ctr + alt + t billentyűkombinációval indíthatjuk el.

Nem Ubuntu alapú Linux disztribúciókban jó eséllyel nem működik ez a billentyűkombináció, így csak úgy indíthatjuk el a grafikus felületi terminálablakot, hogy a telepített programok között rákattintunk az ikonjára.

Egyéb grafikus felületi terminál programok: konsole, xfce-terminal, lxterminal, guake, terminator.

Virtuális terminálban

Minden Linux disztribúcióban használhatunk úgynevezett virtuális terminálokat. Ezeket a ctr + alt + f1, ctr + alt + f2, ..., ctr + alt + f7 billentyűkombinációkkal érhetjük el. Ezek közül az egyik a grafikus felület, hogy melyik, az disztribúcióként változhat.
Ha már nem használjuk a virtuális terminál parancssoros felületét, érdemes kijelentkezni logout vagy exit paranccsal.

Rendszergazda (root) jogosultság

Egyes parancsok futtatásához rendszergazda jogosultság szükséges. Ubuntu alapú Linux disztribúciókban ha egy parancs elé írjuk, hogy sudo, majd megadjuk a jelszavunkat, akkor a parancs rendszergazda jogosultsággal lesz futtatva.

sudo command_name

Például:

sudo fdisk -l

Ehhez az is szükséges, hogy a felhasználónevünk szerepeljen a sudo csoportban. Ez az otthoni számítógépünkön minden bizonnyal így van, iskolában/munkahelyen viszont jó eséllyel csak a rendszergazdák felhasználónevei szerepelnek a sudo csoportban.
Ubuntu esetében aki a rendszert telepíti a számítógépre, annak a felhasználóneve rendszergazda jogosultsággal fog rendelkezni (automatikusan hozzáadódik a sudo csoporthoz), illetve a telepítést követően létrehozhat további felhasználóneveket:

sudo adduser username

És lehetősége van azokat hozzáadni a sudo csoporthoz:

usermod -a -G sudo username

A groups paranccsal tekinthetjük meg azon csoportok neveit, melyekben az általunk használt felhasználónév szerepel.

groups

Ha sok parancsot kell rendszergazda jogosultsággal futtatni, és nem akarjuk mindegyik elé írni, hogy sudo, akkor használhatjuk a sudo -s parancsot. Ha már nem szeretnénk ily módon parancsokat futtatni, akkor pedig használjuk a logout vagy exit parancsot.

sudo -s

Ubuntuban a root (rendszergazda) felhasználó alapbeállítás szerint le van tiltva.

Debianban alapbeállítás szerint nincs telepítve a sudo parancs, és a rendszergazda jogosultságot igénylő parancsokat a su root parancs futtatását követően futtathatjuk. A su root parancsot követően meg kell adnunk a rendszergazda felhasználóhoz tartozó jelszót. Ha már nincs szükségünk rendszergazda jogosultságra, érdemes kijelentkeznünk egy logout vagy exit paranccsal.

Futtatási jog

Ha egy program indítófájlját akarjuk futtatni parancssorból, elképzelhető, hogy olyan hibaüzenetet kapunk, hogy nincs futtatási jog. Ekkor a chmod u+x ./filename paranccsal adhatunk a fájlnak futtatási jogot.

chmod u+x ./filename

Nem telepített parancsok

Előfordulhat, hogy bizonyos parancsokat telepíteni kell. Ezt Ubuntuban az apt-get install package_name paranccsal tehetjük meg. Például:

sudo apt-get install finger
sudo apt-get install mc
sudo apt-get install htop

Parancs vagy program leállítása

ctr + c billentyűkombinációval

Másolás és beillesztés

Parancssorban nem működik a ctr + c és ctr + v billentyűkombinációkkal a másolás, beillesztés. Helyette ezeket használhatjuk:

Másolás:

shift + ctr + c

Beillesztés:

shift + ctr + v

Képernyőtörlés

Képernyőtörléshez a clear parancsot, vagy a ctr+L billentyűkombinációt használhatjuk

clear

Alapvető tudnivalók

Gyökérkönyvtár

A gyökérkönyvtár az a könyvtár ami minden más könyvtárat (közvetlenül vagy közvetve) tartalmaz.

Jele: /
(Nem \ mint Windowsban)

Nem minden / jel jelenti a gyökérkönyvtárat, például a /usr/bin-ben csak az első / jel a gyökérkönyvtár, a második / jel azt jelzi, hogy az usr-en belül egy másik könyvtár.

Aktuális könyvtár

Az a könyvtár, amibe be vagyunk lépve, és aminek a tartalmát közvetlenül (a gyökérkönyvtárhoz képesti elérési út megadása nélkül) elérjük.

Jele: ./

Nem összekeverendő a rejtett fájlok vagy könyvtárak neve előtt szereplő ponttal.

Saját könyvtár

/home/user_name

Jele: ~

Nem rendszerfájlok, hanem saját dokumentumok, képek, videók, vagy beállításokat tartalmazó fájlok tárolására használt könyvtár.

Amikor elindítunk egy parancssort, alapbeállítás szerint a saját könyvtár lesz az aktuális könyvtár.

Meghajtók

Linuxon nincsenek meghajtók, mint Windowsban, hanem az /mnt vagy a /media könyvtárakon belül lesznek csatolva az egyes eszközök.

Kiterjesztés

Pl. a file_name.txt-ben a txt.

Linuxon az indítófájloknak nem szokott kiterjesztése lenni, mint Windowsban az exe.

Fájl- és könyvtárnevek

Linuxon a fájlok és könyvtárak nevében számít a kis- és nagybetű (angolul ezt case sensitivity-nek nevezzük). Windowsban ez pont ellenkezőleg van, így aki sokáig használt Windowst, sokszor belefuthat ebből fakadó hibákba. Például a kep1.png és Kep1.png Linuxon két különböző fájl.

Linuxon egy adott könyvtárban nem hozhatunk létre azonos nevű könyvtárat és fájlt.

Elérési út

Parancssorból háromféleképp érhetünk el fájlokat vagy könyvtárakat a fájlrendszerben:

Abszolút útvonal: ha megadjuk az adott fájl vagy könyvtár elérési útját a gyökérkönyvtárhoz képest. Például a gyökérkönyvtárban lévő etc könyvtárban lévő hosts fájl:
/etc/hosts
Vagy például a gyökérkönyvtárban lévő dev könyvtár:
/dev/

Relatív útvonal: ha megadjuk az adott fájl vagy könyvtár elérési útját az aktuális könyvtárhoz képest.
Például az aktuális könyvtárat tartalmazó könyvtár:
../
Vagy például az aktuális könyvtárat tartalmazó könyvtárban lévő file_name.txt nevű fájl:
../file_name.txt

Path változóban szereplő útvonalak (olyan abszolút útvonalak, amelyekkel elérhető indítófájlok úgy viselkednek, mintha az aktuális könyvtárban lennének).
Például ha telepítve van a Midnight Commander, akkor legyen bármi az aktuális könyvtár, ha beírjuk, hogy mc, majd megnyomjuk az entert, a Midnight Commander elindul, mivel az indítófájlját tartalmazó könyvtár (/usr/bin) szerepel a path változóban.

A path változóban szereplő könyvtárakat az echo $PATH paranccsal írathatjuk ki, melyek : jellel vannak elválasztva egymástól.

Programok elindítása

Parancssorban nem csak parancsokat lehet futtatni, hanem programokat is. Mint például az előbb említett Midnight Commander.

A fentebb felsorolt háromféle módszerrel lehet programokat futtatni. Például a Midnight Commander esetén:

Abszolút útvonallal:

/usr/bin/mc

Relatív útvonallal (ha az /usr/bin/ az aktuális könyvtár):

./mc

Path változóval:

mc

A Midnight Commander esetén a felső kettőt nyilván nem érdemes használni, más programok indítófájljait tartalmazó könyvtár viszont nem biztos, hogy szerepel a path változóban.

A képen látható példában rendszergazda joggal futtatjuk a xampp telepítőjét:

linux_command_line_run_file.png

Alapvető fájl- és könyvtárkezelő parancsok

cd parancs

Az aktuális könyvtárat lehet vele megváltoztatni. Másképp fogalmazva belépünk a cd parancs paramétereként megadott könyvtárba.

Példák:

A gyökérkönyvtár lesz az aktuális könyvtár:

cd /

A saját könyvtár lesz az aktuális könyvtár:

cd ~

Az aktuális könyvtárat tartalmazó könyvtárba lépünk be:

cd ..

Két könyvtárral feljebb lépünk:

cd ../..

A gyökérkönyvtárban lévő etc könyvtárba lépünk be:

cd /etc/

Az aktuális könyvtárban lévő Downloads könyvtárba lépünk be:

cd Downloads

Visszalép abba a könyvtárba, amibe előzőleg voltunk belépve (nem működik, ha akkor írjuk be, amikor megnyitjuk a terminált és még nem léptünk be egy könyvtárba sem):

cd -

ls parancs

Egy könyvtár tartalmát az ls parancs segítségével írathatjuk ki.

Példák:

Aktuális könyvtár tartalmának kiíratása ABC sorrendben, szóközzel elválasztva:

ls

A gyökérkönyvtárban lévő dev könyvtár tartalmának kiíratása:

ls /dev/

Az összes, aktuális könyvtárban lévő jpg kiterjesztésű fájl kiíratása:

ls *.jpg

Az összes a betűvel kezdődő fájl és könyvtár kiíratása:

ls a*

Az aktuális könyvtár tartalmát íratjuk ki a rejtett fájlokkal és könyvtárakkal együtt:

ls -a

Rejtett fájlok/könyvtárak: unix-szerű rendszereken ponttal kezdődnek, általában rendszerfájlok/könyvtárak, a céljuk igazából csak annyi, hogyha a számítógépekhez nem értő felhasználó használja a gépet, akkor nehezebben tudja letörölni őket.

Az aktuális könyvtár tartalmát listanézetben jelenítjük meg, ahol a különböző oszlopokban a felsorolt elemek egyes tulajdonságai találhatóak:

ls -l

Az utolsó oszlop a hozzáférés dátumát mutatja, nem a létrehozás dátumát.

Kapcsolók: az úgynevezett kapcsolók egy adott parancs működésének módosítását teszik lehetővé. Az egyes kapcsolókat az adott parancs neve után írjuk, egy szóközt és egy kötőjelet követően, például így: ls -al. A sorrendjük a legtöbb esetben nem számít, de a kis- és nagybetű igen, valamint léteznek egymást kizáró kapcsolók is (pl. ls esetén az -l és a -C vagy az rm esetén az -i és az -f), amiket ha egyszerre használunk, csak az lesz érvényes amit utoljára adtunk meg.

Egy adott fájl tulajdonságainak kiíratása:

ls -l filename

Egy adott könyvtár tulajdonságainak kiíratása:

ls -ld directory_name

Ez a parancs a könyvtár tartalmát írja ki, nem pedig a könyvtárra vonatkozó tulajdonságokat:

ls -l directory_name

Alkönyvtárak tartalmát is kilistázza:

ls -R

Rendezés

Az elemek rendezése fordított sorrendben:

ls -r

Az elemek rendezése méret szerint (a lista elején a legnagyobb helyet foglaló fájl, a végén pedig a könyvtárak találhatóak):

ls -S

Az elemek rendezése legutóbbi hozzáférés szerint (a lista elején a nemrég megnyitott elemek szerepelnek):

ls -t

Pipe

A pipe jel segítségével az egyik parancs kimenetét átirányíthatjuk egy másik parancs bemenetére. Például:

Le/fel nyilakkal görgethető listát jelenít meg, ha hosszú a parancs kimenete:

ls -l /usr/bin/ | less

Az első 10 sort íratjuk ki az ls -al által visszaadott eredményből:

ls -al /usr/lib/ | head -10

Az utolsó 10 sort íratjuk ki az ls -al által visszaadott eredményből:

ls -al /usr/share | tail -10

Csak a könyvtárakat listázza:

ls -l | grep ^d

^d jelentése: olyan elemek, amiknek az első karaktere d betű

Olyan elemek listázása, amiknek az utolsó karaktere c betű:

ls -l | grep c$

Kimenet átirányítása fájlba

A > jellel egy parancs kimenetét egy plain text fájlba tudjuk elmenteni.

ls -l > filename.txt

Ekkor ha már létezik ilyen nevű fájl, a tartalmát felülírja.

Fájlhoz hozzáfűzni a >> jellel lehet.

cat parancs

Alapesetben kiírja egy vagy több fájl tartalmát.

Ez a parancs például az /etc/hosts fájl tartalmát írja ki:

cat /etc/hosts

Le/fel nyilakkal görgethetőként is megnyitható, ha hosszú a parancs kimenete:

cat /var/log/dmesg | less

Első és hetedik :-tal elválasztott részt írja ki azokból a sorokból, amikben szerepel a root szó:

cat /etc/passwd | grep root | cut -d: f1,7

ABC sorrendben rendezetten írja ki az /etc/passwd fájl tartalmát:

cat /etc/passwd | sort

3. oszlop szerint rendezi az /etc/passwd fájl tartalmát

cat /etc/passwd | sort -k3

Ez a parancs pedig egy új fájlt hoz létre:

cat > filename.txt
line1
line2
line3

ctr + d billentyűkombinációval tudjuk lezárni a bemenetet.

Ez a parancs a filename1.txt tartalmát a filename2.txt-be másolja felülírással.

cat filename1.txt > filename2.txt

grep parancs

Keresés egy fájlban.

Az /etc/passwd fájlnak a false szót tartalmazó sorait írja ki (azon felhasználók, akik nem tudnak belépni):

grep false /etc/passwd

Az /etc/passwd fájlnak a root szót tartalmazó sorait írja ki, a sorszámokkal együtt:

grep -n root /etc/passwd

Az /etc/ könyvtárban és alkönyvtárjaiban lévő fájlok root szót tartalmazó sorait írja ki:

grep -r root /etc/

A /usr/share/misc/pci.ids fájl azon sorait írja ki, amikben szerepel az ethernet szó (kis- és nagybetűk közti eltéréseket nem veszi figyelembe, case insensitive):

grep -i ethernet /usr/share/misc/pci.ids

Az /etc/passwd fájlnak a root szót tartalmazó sorait és a szomszédos sorait is kiírja:

grep -C1 root /etc/passwd

Az /etc/passwd fájlnak a root szót nem tartalmazó sorait írja ki:

grep -v root /etc/passwd

Pontosan erre a szóra keres, pl. username2, username3... stb nem fog szerepelni a találatok közt:

grep "\<username\> /etc/passwd

Az /etc/passwd fájlnak azokat a sorait jeleníti meg, amikben vagy a root szó szerepel, vagy pedig a systemd szó:

grep -E 'root|systemd' /etc/passwd

less parancs

Le/fel nyilakkal görgethetőként kiírja egy fájl tartalmát.

less /etc/services

q billentyű megnyomásával tudunk kilépni belőle.

head és tail parancs

Kiírja egy fájl első valahány vagy utolsó valahány sorát. Alapértelmezésként 10 sort írnak ki.

head -5 /etc/mtab
tail /etc/fstab

cut parancs

Az /etc/passwd fájl első, harmadik, és negyedik :-tal elválasztott oszlopát jeleníti meg:

cut -d: -f1,3,4 /etc/passwd

pwd parancs

Kiírja az aktuális könyvtár gyökérkönyvtárhoz képesti elérési útját.

pwd

Pl. a saját könyvtár esetén /home/username

cp parancs

Másolás.

A file_name nevű fájlt az aktuális könyvtárból átmásolja a saját könyvtárba:

cp ./file_name ~/

A saját könyvtárban lévő Pictures könyvtárat és a tartalmát átmásolja a saját könyvtárban lévő Downloads könyvtárba.

cp -r ~/Pictures ~/Downloads

A cp parancs használata esetén (p kapcsoló nélkül) az lesz a fájl tulajdonosa, aki a másolást elvégezte.

Tulajdonos és jogosultságok megőrzése:

cp -p filename_old filename_new

A timestamp megőrzése:

cp -a filename_old filename_new

Felülírás mellőzése (n kapcsoló):

cp -nr ~/Pictures ~/Downloads

rm parancs

Törlés.

Az aktuális könyvtárban lévő file_name nevű fájlt törli

rm ./file_name

Az aktuális könyvtárban lévő Pictures könyvtárat a teljes tartalmával együtt törli

rm -rf ./Pictures

rmdir parancs

Egy üres könyvtárat töröl.

Ha a Pictures könyvtár üres, akkor törli:

rmdir ./Pictures

mkdir parancs

Új könyvtár létrehozása.

Az aktuális könyvtárban létrehoz egy Example nevű könyvtárat:

mkdir Example

A saját könyvtárban létrehoz egy Example nevű könyvtárat:

mkdir ~/Example

Az aktuális könyvtárban létrehoz egy New Folder nevű könyvtárat. Fontos a \ jel, különben két könyvtárat hozna létre.

mkdir New\ Folder

A saját könyvtárban létrehoz egy directory1 nevű könyvtárat, abban egy directory2-t, abban pedig egy directory3-at.

mkdir -p ~/directory1/directory2/directory3/

12 könyvtárat létrehoz, 2014-01, 2014-02 ... 2014-12 nevekkel.

mkdir 2014-{01..12}

mv parancs

Áthelyezés, átnevezés.

Az összes Screenshot kezdetű fájlt áthelyezi a saját könyvtárban lévő Pictures könyvtárba

mv ./Screenshot* ~/Pictures

A filename1 nevű fájt filename2-re nevezi át:

mv filename1 filename2

rename parancs

Tömeges átnevezés reguláris kifejezésekkel.

Az aktuális könyvtárban minden fájlnévben a valami1-et kicseréli valami2-re.

rename 's/valami1/valami2/g' *

find parancs

Keresés.

/etc könyvtárban az összes conf kiterjesztésű fájl megkeresése:

find /etc -name "*.conf"

Ha valamelyik fájl nem hozzáférhető, nem ír ki hibaüzenetet

find /etc -name "*.conf" 2>/dev/null

/boot könyvtár és alkönyvtárai:

find /boot -type d

Átmásolja a saját könyvtárban létrehozott backup könyvtárba az /etc könyvtárban lévő conf fájlokat:

mkdir ~/backup
find /etc -name "*.conf" -exec cp {} ~/backup \;

A backup könyvtárba elmentett fájlok törlése:

find ~/backup -name "*.conf" -ok rm {} \;

touch parancs

Ha még nem létezik example nevű fájl, akkor létrehozza, ha már létezik, akkor módosítja a legutóbbi hozzáférés időpontját.

touch example

A fájl létrehozásának dátumát módosítja:

touch -t 201502031111 example

comm parancs

Két fájl tartalmának összehasonlítása.

comm filename1.txt filename2.txt

Első oszlopban csak az első fájlban található sorok, második oszlopban csak a második fájlban található sorok, harmadik oszlopban pedig mindkét fájlban megtalálható sorok helyezkednek el.

tee parancs

A köztes kimenetet fájlba írja.

ls -l | tac | tee filename.txt | tac

file parancs

Kiírja a fájl formátumát. Például:

file picture.png

PNG image data, 800 x 330, 8-bit colormap, non-interlaced

Fájl tartalmának törlése

echo "" > filename
cat /dev/null > filename

xargs parancs, tömeges fájlfeldolgozás

Amikor nagyon sok fájlt kell feldolgoznunk (pl. 2milliót), akkor a parancsértelmező limitje miatt nem fogjuk tudni az alap parancsokkal elvégezni a feladatot. Például erre használhatjuk a find és az xargs parancsok kombinációját.

Ezzel a paranccsal például az aktuális könyvtárban lévő fájlokat, könyvtárakat törölhetjük:

find ./* | xargs rm -rf

Tömörítés

tar parancs

Betömörítés:

tar -cvzf filename.tar.gz ~/Documents/*
tar -cvjf filename.tar.bz2 ~/Documents/*

Kitömörítés:

tar -xvzf filename.tar.gz
tar -xvjf filename.tar.bz2

Szimbolikus link: tulajdonképpen egy parancsikon egy program indítófájljához. Például így lehet készíteni (bár ennek a példának konkrétan nem sok értelme van):

ln -s /bin/ls ~/ls

Hard link: egy másik futtatható fájl, ami a merevlemezen ugyanarra a fájlra mutat. Például:

ln /bin/ls ~/ls

Hard linket létrehozni csak egy adott partíción belül lehet.

Jogosultságok

Fájl és könyvtár tulajdonosa

Tekintsük ennek a parancsnak a harmadik oszlopát:

ls -l ./filename

Egy felhasználónév lesz, mégpedig a fájl tulajdonosának a felhasználóneve. Ennek akkor van jelentősége, ha több felhasználó használ egy adott számítógépet, vagy esetleg ha egy külső eszközről másolunk fájlokat a számítógépünkre.

chown parancs

Ez a parancs a filename nevű fájl tulajdonosát átállítja a username nevű felhasználóra:

chown username filename

Ez a parancs a directory_name könyvtárnak és a teljes tartalmának a tulajdonosát átállítja a tulajdonosát username nevű felhasználóra:

chown -R username directory_name

chown.png

Írási, olvasási, futtatási jogok

Tekintsük ennek a parancsnak az első oszlopát:

ls -l ./filename

Valami ilyesmi lesz:

-rwxrwx-r-x

A betűk jelentése:

r: olvasási jog
w: írási jog
x: futtatási jog

A csoportok jelentése:

Az első három jelenti a fájl vagy könyvtár tulajdonosának a jogait, a második három annak a csoportnak a jogosultságait, amihez a fájl tartozik, a harmadik három pedig mindenki más jogosultságait.

Ennek leginkább akkor van jelentősége, ha több felhasználó használja a számítógépet, de elképzelhető, hogy egy számítógép egyetlen kizárólagos felhasználójának is át kell néha állítania ezeket.

chmod parancs

Fájl vagy könyvtár hozzáférési jogosultságának átállítása.

Mindenkinek minden jogot megad a filename nevű fájlhoz:

chmod 777 filename

A számok jelentése:

  • 4: olvasási jog
  • 2: írási jog
  • 1: futtatási jog

Ha összeadunk két számot az mindkét jogot jelenti, például 4+2=6 az olvasási és írási jog.

A fájl tulajdonosának olvasási és írási jogot ad, mindenki másnak pedig csak olvasási jogot:

chmod 644 filename

A directory_name nevű könyvtárnak és a teljes tartalmának a jogait átállítja úgy, hogy a tulajdonosnak olvasási és írási joga legyen, mindenki másnak pedig semmi.

chmod -R 600 directory_name

Futtatási jogot ad a fájl tulajdonosának:

chmod u+x filename

Írási jogot ad a csoportnak:

chmod g+w

Olvasási jogot ad mindenki másnak:

chmor o+r filename

A betűk jelentése:

  • u (user) tulajdonos
  • g (group) csoport
  • o (others) mindenki más
  • r (read) olvasási jog
  • w (write) írási jog
  • x (execute) futtatási jog

Az umask parancs adja vissza, hogy milyen jogosultságokkal hozunk létre egy új fájlt

umask

xargs parancs

Az xargs parancs amit a bemenetén megkap, azt odaadja paraméterként az őt követő parancsnak:

Például így adhatunk 755 jogosultságot az összes könyvtárnak (az aktuális könyvtárban):

find . -type d -print0 | xargs -0 | chmod 755

Valamint így adhatunk 644 jogosultságot az összes fájlnak (az aktuális könyvtárban):

find . -type f -print0 | xargs -0 | chmod 644

A backup könyvtáron belül engedélyezzük a csoportnak, hogy be tudjanak lépni a backup könyvtárba és az alkönyvtáraiba:

find ~/backup -type d -print0 | xargs -0 chmod g+x

Feladatkezelő parancsok

ps parancs

Kiírja a futó programokat, folyamatokat.

Ez a parancs egy viszonylag hosszú listát ad:

ps -e

Ha tudjuk, hogy mit keresünk, akkor a C kapcsolót használva kereshetjük meg a process id-ját. Például:

ps -C sleep

Esetleg grepet is használhatunk ugyanerre a célra:

ps -e | grep nautilus

Esetleg egy le/fel nyilakkal görgethető listát is nézegethetünk:

ps -e | less

A ps fx parancsot használva láthatjuk, hogy melyik folyamatot melyik folyamat indította el:

ps fx

pgrep parancs

A ps -C sleep vagy a ps | grep sleep parancsokhoz hasonlóan a prgrep processname paranccsal is kikereshetjük egy folyamat process id-ját. Például:

pgrep sleep

top parancs

Egy le/fel nyilakkal görgethető listát ad a futó programokról, folyamatokról legfelülre rendezve a legtöbb processzoridőt használó programokat.

top

q betűvel lehet kilépni belőle.

kill parancs

Leállít egy futó programot, folyamatot.

A ps és a top parancsokban az első oszlopban láthattuk a futó programok, folyamatok process id-ját (pid). Ezt kell paraméterül adnunk a kill parancsnak ahhoz, hogy leállítsuk az adott folyamatot.

Például:

kill 2789

Ha így nem sikerült leállítani az adott folyamatot, akkor esetleg próbáljuk meg így is:

kill -9 2789

htop parancs

Hasonló felületet ad, mint a top parancs, viszont a futó folyamatokat le is tudjuk állítani vele.

htop

Válasszuk ki a leállítani kívánt folyamatot, majd nyomjuk meg az F9 billentyűt, aztán válasszuk a 15 (SIGTERM) lehetőséget. Ha így nem áll le a futó folyamat, akkor pedig F9 és 9 (SIGKILL).

htop.png

pidof parancs

A pidof parancs egy futó folyamat neve alapján megadja a process id-t:

pidof init

pkill parancs

Név alapján keres meg és állít le egy folyamatot. Például:

pkill sleep

killall parancs

Név alapján keres meg és állít le minden a névnek megfelelő folyamatot. Például:

killall sleep

& jel egy parancs után

Ha & jelet írunk egy parancs után, akkor az a háttérben lesz futtatva. Például:

sleep 100 &

jobs parancs

A háttérben futó folyamatokat listázza ki

fg parancs

Egy háttérben futó folyamat előtérbe hozása. Például:

fg 2789

$$ és $PPID

A $$ megadja az éppen aktuálisan futó shell process id-ját, a $PPID pedig a szülő pid-ját:

echo $$ $PPID

nice parancs

A nice paranccsal lehet egy futó folyamatnak nagyobb prioritást adni. Például:

nice --10 gnome-terminal

Felhasználókezelés

w, who, finger, users parancsok

Ki van bejelentkezve, milyen felületről, mikor kezdődött a munkamenete.

w
who
finger
users

whoami, logname, id -un parancsok

A bejelentkezett felhasználó felhasználónevét adja vissza

whoami
logname
id -un username

id parancs

A paraméterben megadott felhasználóhoz tartozó azonosítót és a csoportokat írja ki.

id username

last parancs

Milyen munkamenetek indultak, záródtak le, a számítógépünk mikor volt újraindítva utoljára.

last

hostname parancs

A számítógép nevét írja ki

hostname

Hasonló:

cat /etc/hostname

passwd parancs

A bejelentkezett, vagy a paraméterben megadott felhasználó jelszavát változtatja meg (ha van hozzá jogosultságunk).

passwd

Ha például használjuk a sudo -s parancsot, akkor a passwd root paranccsal tudjuk megváltoztatni a root felhasználó jelszavát. Ubuntuban a root felhasználó alapbeállítás szerint le van tiltva.

passwd username

usermod, gpasswd, deluser parancsok

Felhasználók hozzáadása vagy eltávolítása egy megadott csoportból

username nevű felhasználó sudo csoporthoz való hozzáadása:

usermod -a -G sudo username

username nevű felhasználó sudo csoportból való eltávolítása:

gpasswd -d username sudo
deluser username groupname

adduser parancs

Új felhasználó hozzáadása

adduser username

deluser parancs

Felhasználó törlése

deluser username

chfn parancs

username nevű felhasználó teljes nevének átnevezése

chfn username

chsh parancs

Felhasználó által használt shell módosítása.

Pl. username felhasználót kitiltjuk:

chsh username
/bin/false

Dátum, idő

date parancs

Dátum és idő megjelenítése:

date +'%Y-%m-%d %A %T'

Paraméterek jelentése:

  • %Y: év
  • %m: hónap
  • %d: nap (számként)
  • %A nap (a hét napjaként)
  • %T: idő

1970.01.01. óta eltelt idő (unix idő) másodpercben:

date +%s

cal parancs

Naptár

cal

Megadott hónap és év. Például 2012 február:

cal 2 2012

time parancs

Parancs vagy program futásának időmérése. Például:

time ls

Partíciók, háttértárolók

df parancs

Diskek foglaltsága, felmountolt kötetek:

df -T

du parancs

Az aktuális könyvtár összes alkönyvtárának kiírja a helyfoglalását

du

fdisk parancs

Az fdisk egy partíciókezelő program. Ebben a tananyagban nem foglalkozunk vele részletesebben.

Az fdisk -l paranccsal lehet kilistázni a partíciókat:

fdisk -l

fdisk.png

lsblk parancs

Partíciók típusa és uuid-ja.

lsblk -f | grep -v loop

lsblk.png

blkid parancs

partíciók és uuid-k listázása

blkid | grep -v loop

blkid.png

mount parancs

Eszköz felcsatolása egy könyvtárba. Léteznie kell a könyvtárnak. Például:

mount /dev/sda1 /mnt

Újraindítás után elfelejti. Az /etc/fstab fájlt kell szerkesztenünk ahhoz, hogy minden indításkor felcsatolja.

Megadja hova van felmountolva a proc:

mount -t proc

Rendszerjellemzők

lsb_release parancs

Kiírja a Linux disztribúcióval kapcsolatos információkat. Például verzió, kódnév.

lsb_release -a

uname parancs

Kiírja a Linux kernel verzióját.

uname -a

lsb_release_uname.png

inxi parancs

Információ a számítógép fő hardvereiről, szoftvereiről

inxi -SGCMx

inxi.png

lshw parancs

A számítógép hardvereinek jellemzőit írja ki.

lshw

Busz szerint listázza:

lshw -short

html fájlba is exportálhatjuk a tartalmát:

lswh -html > filename.html

lspci parancs

A PCI slotokban lévő eszközöket jeleníti meg.

lspci

Több információ. Például milyen io portokon hallgat, melyik irqn.

lspci -v

Mégtöbb információ. root jogosultság kell bizonyos információkhoz.

lspci -vv

Ebben a fájlban hasonló információkat érünk el:

less /usr/share/misc/pci.ids

lsusb parancs

usb eszközök listázása

lsusb

Több információ (rootként ajánlott futtatni):

lsusb -v

Ebben a fájlban hasonló információkat találunk:

less /var/lib/usbutils/usb.ids

dmidecode parancs

Információ a számítógép hardvereiről. rootként érdemes futtatni:

dmidecode | less

Akár az egyes részleteket is megjeleníthetjük a t kapcsolóval. Például a memória típusát:

dmidecode -t 17

dmidecode_memory.png

sensors parancs

A számítógép hardvereinek hőfokát írja ki.

sensors

lm_sensors.png

free parancs

Memóriahasználat

free

iotop parancs

A diskigényes folyamatokat mutatja meg

iotop

atop parancs

Láthatjuk milyen processzek foglalják a rendszerünket. A hálózatról is szolgáltat némi információt.

atop

linux_performance_tools.jpg

Hálózat

ssh parancs

Az ssh paranccsal távoli gépre tudunk bejelentkezni. Például:

ssh username@caesar.elte.hu

scp parancs

Másolni tudunk vele az ssh szerverről a számítógépünkre, vagy a számítógépünkről az ssh szerverre.

scp username@caesar.elte.hu:./directory_name/filename ~/
scp ./filename username@caesar.elte.hu:.

ip parancs

Hálózati információk

ip a l
ip route

ifconfig parancs

Az ip parancshoz hasonló, depricated (elavult).

ifconfig -a

ip cím módosítása példák:

ifconfig eth0 1.1.1.1 netmask 255.255.255.252 up
ifconfig eth1 192.168.1.254 netmask 255.255.255.0

ip cím módosítása tartósan

Nyissuk meg ezt a fájlt. Például így:

nano /etc/network/interfaces

Írjuk bele például ezt:

iface lo inet static
  address 192.168.0.200
  netmask 255.255.255.0
  gateway 192.168.0.1

ifdown, ifup parancs

Egy hálózati eszközt kikapcsol/bepakcsol. Példák:

ifdown eth0
ifup eth0

ping parancs

Hálózati kapcsolat tesztelése. Azt teszteli, hogy van-e kapcsolat egy hálózati eszközzel ip cím megadása alapján.

ping 8.8.8.8
ping -f 8.8.8.8

ttl (time to leave):
Ha egy csomag eltéved, ne tudjon az örökkévalóságig keringeni, valahány ugrópont után megszünteti magát.

traceroute parancs

Hálózati kapcsolat tesztelése. Látjuk, hogy milyen ugrópontokon megy keresztül. Ha valahol elakad, kicsillagozza a végét, hogy nem tud tovább menni.

traceroute index.hu

arp parancs

arp tábla. Milyen ip címeket milyen mac címekkel látogattunk.

arp -a
arp -d

route parancs

routing táblát írja ki

route

Hasonló:

netstat -r

netstat parancs

Megadja azokat a kapcsolatokat amikből valamit forgalmazunk a világ felé.

netstat tunlp

Pl. szeretném megnézni mi használja az ssht:

netstat tunlp | grep ssh

nmap parancs

Felsorolja azokat a portokat ahova valami konfigurálva van és ez a port adott esetben nyitva van
ha elfelejtettük az ssh portunkat, egy nmappel ki lehet deríteni

nmap -p 1-65000 localhost

lsof parancs

List open ports

lsof -i

ss parancs

Hálózati kapcsolatok

ss -ta

tcpdump parancs

Minden részletet ki lehet belőle deríteni, hogy ki kivel mit kommunikál.

tcpdump

Például lehet szűrni, pl ki az aki sshn keresztül akar valamit csinálni:

tcpdump tcp port 22

whois parancs

Megadja egy honlap domaininformációit.

whois index.hu

host parancs

Megadja egy honlap ip címét és azt, hogy az emaileket hol kezeli.

host index.hu

dig parancs

Egy honlappal kapcsolatos információkat kérdezhetünk le.

Például az ipv4-es ip címet:

dig -t a index.hu

Email információk:

dig -t mx itfactory.hu

drill parancs

Hasonló, mint a dig, csak kicsit többet tud. dnssecet is tud vizsgálni.

drill index.hu

iptraf

Sokmindent ki tudunk debuggolni. Pl. dosolnak-e, van-e nagy hálózati forgalmunk.

iptraf

Ha elindítottuk, válasszuk például az ip traffic monitor lehetőséget, majd az egyik interfacet, például az eth0-t.

iptables

Milyen jelenlegi beallitasok vannak:

iptables -L

Flush:

iptables -F

wget parancs

Honlapok fájljainak letöltése. Például a https://inf.nyme.hu/~nemes/Software/Polymorph/ teljes oldalát ezzel az utasítással tudjuk letölteni:

wget -r https://inf.nyme.hu/~nemes/Software/Polymorph/index_d.htm

wget.png

Számítógép leállítása

Leállítás

poweroff
halt -p
shutdown now
init 0

Újraindítás

reboot
shutdown -r 0
init 6

Legutóbbi újraindítás

last reboot

Fájlrendszer ellenőrzés

shutdown -F -r now

Szövegfeldolgozás

wc parancs

Egy pipeolt bemenetről alapesetben megadja hány sort, hány szót és hány karaktert tartalmaz.

Az aktuális könyvtárban ennyi elem van 

ls -l | wc -l

Hány felhasználó van bejelentkezve:

who | wc -l

tr parancs

A tr parancs bizonyos karaktereket átalakít valamilyen karakterré. Például sortörések átalakítása szóközzé:

cat filename | tr '\n' ' '

Több szóköz átalakítása egy szóközzé:

cat filename | tr -s ' '

Kódolni és dekódolni is lehet vele. Például:

echo "első második" | tr 'a-z' 'n-za-m'
echo "első második" | tr 'a-z' 'n-za-m' | tr 'n-za-m' 'a-z'

cut parancs

who parancs első oszlopa

who | tr -s ' ' | cut -d' ' -f1

/etc/group fájl első oszlopa

cut -d: -f1 /etc/group

Melyik felhasználó nem tud bejelentkezni:

grep false /etc/passwd | cut -d':' -f1

sed parancs

Kiír 3 sort:

cat /etc/passwd | sed 3q

Nem írja ki azt a sort, amiben a root kifejezés szerepel:

cat /etc/passwd | sed '/root/d'

Az első helyen, ahol 1234-et talál, kicseréli 4321-re:

echo "1234" | sed 's/1234/4321/'

Az összes helyen, ahol 1234-et talál, kicseréli 4321-re:

echo "12341234" | sed 's/1234/4321/g'

Az elejéhez hozzáfűz egy tabulátort:

ls -l | sed 's/^/\t/'

Addig írja ki a sorokat, amíg nem következik egy könyvtár (azt is kiírja), aztán kilép

ls -l | sed '/^d/q'

Nem írja ki a könyvtárakat:

ls -l | sed '/^d/d'

Az első szóköz után töröl (üres stringre cserél) mindent

ls -l | sed 's/ .*//'

Az első és az utolsó szóköz között mindent (szóközöket is beleértve) kicserél egy tabulátorra

ls -l | sed 's/ .* /\t/'

Ugyanez csak könyvtárakra (az n kapcsoló nélkül minden sort kiírna):

ls -l | sed -n '/^d/s/ .* /\t/p'

Minden nem üres sor elé tesz tabulátort. A ^$ jelenti az üres sort. A ! jel a mintát negálja, vagyis ami a mintával nem egyezik, arra hajtja végre a parancsot.

ls -l | sed '/^$/!s/^/\t/'

Minden sor végére tesz egy üres sort

ls -l | sed '/$/\n/' fájl

4. sort kiírja:

ls -l | sed -n '4p'

4., 5., 6. sort kiírja:

ls -l | sed -n '4,6p'

7. és 8. sort nem írja ki, a többit igen:

ls -l | sed '7,8d'

Minden szóköz vagy tabulátor helyett egy újsort tesz

ls -l | sed 's/[ \t][ \t]*/\n/g'

Első üres sorig írja ki:

lspci -vv | sed -n '1,/^$/p'

Kiírja a sorokat az első olyan sortól kezdve, amiben talál Eth kezdetű szót:

lspci -vv | sed -n '/Eth/,$p'

01 kezdetű sortól kezdve kiírja a sorokat az első üres sorig:

lspci -vv | sed -n '/^01/,/^$/p'

Nem írja ki az utolsó sort:

df -lh | sed '$d'

A konyvtarak.txt-be beleírja az aktuális könyvtár alkönyvtárait, a fajlok.txt-be pedig az aktuális könyvtárban lévő fájlok neveit. A parancs két sorba írandó:

ls -l | sed -n '/^d/w konyvtarak.txt
/^d/!w fajlok.txt'

Kötőjeleket pontra cseréli:

echo 1997-05-06 | sed 's/\(....\)-\(..\)-\(..\)/\1.\2.\3/'

awk parancs

Az ls -al parancs első oszlopát írja ki:

ls -al | awk '{ print $1}'

Szóközökkel elválasztva írja ki az ls parancs kimenetét:

ls -l | awk '{for (i=9; i <= NF; i++) printf "%s ", $i}'

Azon felhasználók, akiknek van jelszó beállítva:

sudo awk -F: '$2 != "*" && $2 != "!"' /etc/shadow

Egyéb parancsok

man parancs

Megadja egy parancshoz tartozó súgót, ami leírja, hogy például melyik kapcsoló mire jó a parancshoz.

man ls
man cp

!$

Előző parancs teljes paraméterlistája

cat !$

!!

Előző parancs. Például:

sudo !!

||

Ha az első parancs sikeresen lefut, a második nem fut le

echo első || echo második

whatis parancs

Rövid összefoglaló arról, hogy a mögötte levő parancs/program mire használható.

whatis route

whereis, which parancsok

Megadja, hogy a parancs indítófájlja hol helyezkedik el a háttértárolón.

whereis route
which mkdir

type parancs

Megadja, hogy a parancs indítófájlja hol helyezkedik el, vagy hogy a parancs a shell beépített parancsa-e.

type cd
type route

od parancs

Hexakóddal írja ki egy fájl tartalmát:

od -t x1 filename

env parancs

Környezeti változók kiíratása

env

uptime parancs

Kiírja, hogy mióta van bekapcsolva a számítógép

uptime

setxkbmap parancs

A billentyűzet kiosztását tudjuk vele állítani. Például magyarra:

setxkbmap hu

set -x paranacs

Ha kiadunk egy parancsot, látható lesz, hogyan értelmezi:

set -x

crontab parancs

Időzített feladatokat tudunk vele listázni, szerkeszteni.

Listázás:

crontab -l

Szerkesztés:

crontab -e

timeout parancs

3 mp után megszakítja az adott folyamatot:

timeout 3 sleep 100

strings parancs

Bináris fájlokban szereplő szavak kiíratása

strings /usr/bin/passwd

lsof parancs

Mi használja a disket.

lsof

lsmod parancs

A betöltött Linux kernel modulokat listázza ki

lsmod

dmesg parancs

A rendszerindítás logjai

dmesg

Csak a kritikus üzenetek:

dmesg -n 1

dd parancs

Megadott méretű fájl létrehozása. Például:

dd if=/dev/zero of=filename bs=1024 count=3

chroot parancs

Mást fogunk látni gyökérkönyvtárként. Például ha elfelejtettük a root jelszót, ezzel lehet visszaállítani.

mkdir /mnt/sda
mount /dev/sda3 /mnt/sda
chroot /mnt/sda
passwd root

mytop parancs

Milyen mysql querik futnak, milyen terheltségű az adatbázisunk.

mytop -u username -p password

Egyéb hasznos tudnivalók

Billentyűkombinációk

Tab billentyűvel kiegészíthetjük az eddig beírt parancsot. Pl. ha csak annyit írunk be, hogy cd ~/Down akkor egy tabot megnyomva kiegészül cd ~/Downloads-ra.

Le/fel nyilakkal hozhatjuk elő az eddig kiadott parancsokat.

ctr + r billentyűkombinációval kereshetünk az eddig kiadott parancsok között.

shift + pageup billentyűkombinációval görgethetünk felfelé. Ez például akkor hasznos, ha nem grafikus felületi terminálban dolgozunk.

$PATH megváltoztatása

export PATH=$PATH:~/Downloads

Egyéb tananyagok

A bejegyzés trackback címe:

https://itkezdoknek.blog.hu/api/trackback/id/tr5812618565

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása