Ma pár olyan kiegészítő információt beszélünk meg, melyekkel a parancssorban vagy a scriptekben láncolhatunk össze több parancsot. Ezeket érdemes ismerni, mert gyakran kényelemesebben dolgozhatunk velük és gyorsíthatja a munkánkat.
Az első a & (AltGr + C). Ezt már használtuk, hiszen az autostart-ba így rakosgattuk be a parancsokat. Ez nem tesz mást, csak a háttérbe küldi az adott parancsot.
Elindítjuk a programot, ami szépen fut, de nem adja vissza a promtot, mert teszi a dolgát. De mi nem akarjuk kivárni, amíg végez, dolgozni akarunk tovább. Ha háttérbe küldjük, akkor már visszakapjuk a promtot, és írhatjuk be a következő parancsot.
A háttérbe küldött parancsokat a
jobs
paranccsal listázhatjuk és a
fg feladatszáma
paranccsal hozhatjuk előtérbe, ha kell. Ha csak egy feladat fut, akkor nem kell beírni a számát, ennyire intelligens az fg. Nagyon jól lehet próbálgatni ezeket a
sleep 10
nagyon egyszerű parancs begépelésével. Nem csinál ez mást, mint a megadott számú másodpercig vár.
sleep 100 &
begépelése után már egyértelmű lesz minden :) Így nem ronthatunk el semmit és a fenti háttérbe küldés, előrehozást is gyakoroljuk.
Én előszeretettel használom például a
apt-get update &
megoldást, hiszen nem akarom végignézni, hogy letölti az adatbázist.
A következő kevésbé hasznos megoldás a ; (pontosvessző: AltGr + ?). Ez lehetővé teszi egymás utáni parancs végrehajtást.
apt-get update ; apt-get upgrade ; apt-get autoremove
Így megadott parancsok egymás után lefutnak, ha az első kész, akkor a második stb. következik.
Miért „kevésbé” hasznos? Mert nem ellenőrzi az előző parancs végrehajtását. Azaz ott nem használható, ahol fontos az előző parancs kifogástalan lefutása, hiba nélkülisége. A fenti példa akkor jó, ha 100%ig biztosak vagyunk abban, hogy az adatbázis frissítés korrektül végrehajtható. Ha nem, akkor is lefut a upgrade, vagy legalábbis megpróbálja a csomagokat frissíteni. Így, ha azt szeretnénk, hogy csak akkor fusson a második, ha az előző hiba nélkül fut le, akkor ez nem lesz megfelelő. Ilyen esetben a && kell használni. Csak akkor hajtja végre a következőt, ha az előző rendben volt:
apt-get update && apt-get -y upgrade && apt-get autoremove
Így jobb lesz, hiszen nem próbál csomagot frissíteni, ha nem lett az adatbázis frissítve. A fenti sokszor ismétlődő feladatot gyorsítja, ha nem kell megvárni az első lefutását, hanem automatikusan belép a második, ha az első jó. Persze akkor fut le korrektül, ha root joggal futtatod, de indítsd el sima felhasználóként is, hogy lásd: mivel nincs jogod, a következő parancs nem fut le, így kilép.
De ez is egy jó megoldás:
ping -c3 http://minta.org && wget -c -r --no-parent -A .mp3 http://minta.org/mp3s/
Csak akkor kezdi leszedni a fájlokat, ha elérhető az oldal.
Az || (két darab AltGr+W) operátor lehetővé teszi, hogy csak akkor hajtsa végre a második parancsot, ha az első parancs végrehajtása sikertelen, vagyis az első parancs kilépési állapota "1".
Azaz egy „vagy” kötést kap a két parancs. Ha az első nem jó, akkor jöhet a második.
A kipróbáláshoz sima felhasználóként:
apt-get update || echo „Te nem vagy ROOT!!!”
sort használhatod. Nyilván nem fut le az első, így a második lép érvénybe: kiírja a „Te nem vagy ROOT!!!”-ot. Ugyanezt add ki rootként, máris lefut az első rendben és nem ír ki semmit.
! azaz mit ne csináljon! Így kivételeket adhattuk a parancshoz.
A kipróbáláshoz hozz létre egy csomó fájlt egy könyvtárba, ahol más nincs:
touch a.doc b.doc a.pdf b.pdf a.xml b.xml a.html b.html
ls paranccsal ellenőrizd, hogy létrejöttek.
Most töröld az összes fájlt, kivéve a " html " fájlt egyszerre, intelligens módon.
rm -r !(*. html)
Majd ellenőrizd le, hogy valóban ott vannak a html fájlok és semmi más.
Én például a youtube-ról töltök le lejátszási listákat (például. A pytonidomáros, vagy a vektorgrafika neked sorozatot) és a jdownloader-rel. Ok, tudom, hogy a profik nem ezt használják, de én igen :) Ez pedig mindent leszed, amire esetleg szükségem lehetne:
- 110 - Útvonalak felturbózva - Sára, a supernő Inkscape-ben (192kbit_AAC).m4a
- 110 - Útvonalak felturbózva - Sára, a supernő Inkscape-ben (720p_30fps_H264-192kbit_AAC).mp4
- 110 - Útvonalak felturbózva - Sára, a supernő Inkscape-ben (BQ).jpg
- 110 - Útvonalak felturbózva - Sára, a supernő Inkscape-ben (Leírás).txt
De most csak a videó kell, a parancs pedig így módosul: rm -r !(*. mp4).
AND – OR (&& – ||)
Ez nagyban analóg az „if-else” megoldással egyes program nyelvekben, bár aki már használt if-else ágat, az nem ezt a cikket olvassa :) . A || két darab AltGr+W karakter, már használtuk!
Azaz megadható két kimenet: ha rendben lefutott minden, akkor mit tegyen, és ha nem, akkor mit. Így egy elágazásszerűséget hozhatunk létre, különösebb programozói ismeret nélkül.
apt-get update && apt-get -y upgrade || echo „Nem sikerült az adatbázis frissítése!!!”
Azaz, ha lefut az adatbázis frissítés, akkor frissíti a csomagokat, de ha nem, akkor kiírja, hogy „Nem sikerült az adatbázis frissítése!!!”.
Csővezeték, pipe: |
Azaz egy darab AltGr+W karakter. Egymásnak adják át a kimenetet. Azaz az első kimenete lesz a másodiké. Így egymásba kapcsolhatunk sok parancsot.
Egy sok fájlt tartalmazó könyvtárba add ki:
ls -l | less
Talán az egyik leggyakrabban használt operátor a |. Legalábbis én szeretem:) nem kell eltárolni sok kimenetet, egymásnak adogatják a programok.
Természetesen ezenkívül még nagyon sok operátor van, de mára ennyi elég. Mindet érdemes kipróbálni, majd ha kell használni olyan esetben, amikor arra szükségünk van.
Ennyi
Hozzászólások
Upgrade
Beküldte kimarite -
Értékelés:
Csak megjegyzem (ismét, mert számtalanszor leírtam :)), hogy a Linux Mint biztonsági szinteket használ, amit csak a Frissítéskezelő alkalmazás vesz figyelembe, más csomagkezelő alkalmazás nem. Így például az APT vagy a Synaptic sem. Így tehát bármely upgrade parancs futtatása, azaz például a
vagy a
netán a
vagy a
parancsok bármelyikének futtatása, netán a Synaptic alkalmazásban elvégzett frissítés alkalmazása kikerüli a szinteket! ;-)
A Frissítéskezelő Python scriptet használ a biztonsági szintekhez.
Bármely update parancs futtatása azonban semmilyen veszéllyel nem jár, ez csak lekéri a lehetséges és elérhető csomag információkat, amelyet az upgrade léptet életbe majd (más OS-ek alatt, Debian-alapú terjesztéseken). Az update parancsot például a PPA forrásoknál használjuk a rendszer információinak frissítésére, a források listájának szerkesztése után.