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