Alapvető parancsok:
  • • echo
  • • Paraméterül megadott szöveg kiírása, például: echo Hello World!
  • • man
  • • Manual Page megjelenítése megadott parancshoz/témakörhöz, például: man echo
  • • ls
  • • Könyvtár tartalmának kilistázása. Paraméter nélkül az aktuális könyvtár teljes tartalmát írja ki. Megadott paraméter esetén csak a paraméterre illeszkedő fájlokat írja ki (lásd Globbing). Hasznos kapcsolók:
  • ls -l: részletes információk
  • ls -a: rejtett fájlok megjelenítése
  • • cd
  • • Könyvtárak közötti váltás (change directory). Speciális karakterekkel jelölt könyvtárak: cd ..: szülőkönyvtárba váltás cd ~: felhasználó home könyvtárába váltás cd /: gyökérkönyvtárba váltás
  • • pwd
  • • Aktuális munkakönyvtár megjelenítése (print working directory)
  • • which
  • • Egy parancs futtatásakor melyik futtatható állomány kerül végrehajtásra. Például: which bash
  • • touch
  • • Jelenleg nem létező fájlnév megadásával új fájlt hoz létre. Például: touch uj_fajl.txt
  • • date
  • • Dátum kiírása megadható formátumstringgel (lásd a manual-ban)
  • • chmod
  • • Állomány jogosultságainak beállítása. Megadható betűkkel és oktális számokkal. Lásd: https://www.howtogeek.com/437958/how-to-use-the-chmod-command-on-linux/
    Behelyettesítések:
  • • Fájlbehelyettesítés (globbing): speciális karaktereket tartalmazó string megadása, ami mintaillesztéssel akár több fájlnévre is illeszkedhet. Lásd: https://www.linuxjournal.com/content/pattern-matching-bash
  • • Változóbehelyettesítés: a terminálon (vagy shellscript-ben) változók hozhatók létre és kérdezhetők le, a következő szintaxissal:
  • • x=alma #x változó létrejön, értéke alma
  • • echo $x #kiírja x változó értékét
  • • Beépített shell változók is léteznek, lásd: (fontosabbak: USER, HOME, PATH) https://www.linuxnix.com/linux-shell-inbuild-variables-system-admin/
  • • Parancsbehelyettesítés: parancs kimenetének (mint string) felhasználása értékadáskor. Például:
  • • x=$(date) #a date parancs kimenete lesz az x változó értéke
  • • Aritmetikai behelyettesítés: számítások végrehajtásához használt shell szintaxis.
  • • x=3+2
  • • echo $x #eredmény: 3+2 (stringként értelmezte)
  • • x=$((3+2)) #aritmetikai behelyettesítés
  • • echo $x #eredmény: 5
    Fájlkezelő parancsok: https://linuxfrombeginning.wordpress.com/2008/09/17/linux-command-5-mv-cp-mkdir-rmdir-rm/
  • • mkdir
  • • Üres mappa létrehozása, például: mkdir uj_mappa
  • • mv
  • • Fájlok/mappák mozgatása
  • mv mit hova #”mit” (lehet fájl vagy mappa) mozgatása „hova” helyre
  • mv regi_nev uj_nev #átnevezés: ha az utolsó paraméter nem mappa, akkor mozgatás után át is nevezi a fájlt
  • mv file1 file2 file3 cel_mappa #több fájl mozgatása, ilyen esetben nincs átnevezés
  • mv *.txt Dokumentumok/#akt. könyvtárból az összes txt mozgatása a Dokumentumokba
  • • cp
  • • Fájlok/mappák másolása
  • cp mit hova
  • #”mit” (fájl) másolása „hova” helyre
  • cp -r mit hova
  • #”mit” (mappa) másolása „hova” helyre
  • cp file1 file2 file3 cel_mappa
  • #több fájl másolása
  • cp *.mp3 Music/
  • *akt. könyvtárból az összes mp3 másolása a Music mappába
  • • rm
  • • Fájlok/mappák törlése
  • rm file1 file2 file3 #megadott fájlok törlése
  • rm -r mappa #megadott mappa törlése
  • • rmdir
  • • Üres mappa törlése, például:
  • rmdir ures_mappa
  • Átirányítások:https://ryanstutorials.net/linuxtutorial/piping.php
  • • Bemenet átirányítás
  • parancs ebbol_olvasok.txt
  • • Kimenet átirányítás
  • parancs > ebbe_irok.txt #a fájl eddigi tartalma elvész!
  • • Kimenet hozzáfűzés
  • parancs >> ehhez_fuzok.txt #hozzáfűzi a kimenetet a fájl végéhez
  • • Hibakimenet átirányítás
  • parancs 2> hiba.txt #csak a hibaüzeneteket írja a fájlba
  • • Pipeline (példaprogram: wordfreq.sh)parancs1 | parancs2 #parancs1 kimenete (string) lesz parancs2 bemenete
    Szűrők: https://www.geeksforgeeks.org/filters-in-linux/A fenti linken található parancsok közül a következők szükségesek:
  • • cat
  • • cut
  • • grep
  • • head
  • • rev
  • • sort
  • • uniq
  • • wc
  • • tail
  • • tr
    Processzkezelés:
  • • ps
  • • Táblázat a jelenleg futó folyamatok adatairól (processz ID, futtató felhasználó neve, CPU használat, memória használat, stb.)
  • • Gyakran használt kapcsolók: ps -aux ps -ef
  • • top • Folyamatosan frissülő táblázat a futó folyamatokról • htop • Szintén
  • • Szignálok (manual: man 7 signal) https://www.tutorialspoint.com/unix/unix-signals-traps.htm
  • • Gyakran használt szignálok: Interrupt, Terminate, Quit, Kill, Stop, Continue
  • • kill
  • • Szignálok küldése futó processzeknek (nem csak befejezés!) https://www.linux.com/training-tutorials/how-kill-process-command-line/
  • • killall
  • • Szignál küldése minden megadott nevű processznek, például: killall firefox
  • • trap
  • • Szignálok elkapása: egy bejövő szignálra adott választ a shellscript felülírhatja, gyakran szignálok ignorálására, vagy szabályos kilépéshez szükséges takarításhoz használt (lásd a szignáloknál megadott linket)
  • • nice https://linuxhint.com/linux-nice-renice-command-with-examples/
  • • Prioritáskezelés: most induló folyamat „niceness” értékének megadása, például: nice -n 10 ./nem_fontos_script.sh
  • • renice
  • • Már futó processz niceness értékének változtatása, ilyenkor PID-vel hivatkozunk rá, például: renice -n 15 1234
    Időzítés:
  • • Egyszeri időzítéshez használt parancsok: https://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/
  • • at # időzítés
  • • atq # várakozó lista megtekintése
  • • atrm # várakozó listából törlés
  • • batch # rendszer terheltségétől függő futtatás
  • • Ismételt időzítés: crontab https://www.computerhope.com/unix/ucrontab.htm
  • • Időzítő paraméterek megadásának gyakorlása: https://crontab.guru/
  • • Időzített parancsok szerkesztése: crontab -e
  • • Időzített parancs kimenetének kezelése:
  • 0 8 * * * echo Jó reggelt! > /dev/pts/0
  • # a 0. sorszámú terminálra ír, minden reggel 8 órakor
  • # a jelenleg használt terminál device állománya a tty # paranccsal kérdezhető le
  • 0 20 * * * echo Jó estét! > viszlat.txt
  • # a viszlat.txt-be ír, minden este 8 órakor
  • # fájlok elérési útjához a cron a home könyvtárunkat # veszi aktuális könyvtárnak
  • 0 12 * * * export DISPLAY=:0 && firefox
  • # grafikus ablak megnyitásához a DISPLAY változót
  • # kell beállítani
    #!/bin/bash
  • cat $* | tr -c a-zA-Z0-9 '\n' | tr -s '\n' | tr A-Z a-z | sort | uniq -c | sort -n -r | head
  • # használat:
  • # chmod u+x wordfreq.sh
  • # ./wordfreq.sh fájl1.txt fájl2.txt fájl3.txt
  • # kiírja a (tetszőlegesen sok) megadott szöveges fájlból a 10 leggyakrabban használt szót