Terminál kimenet mentése

Ha valaki terminálban futtatott egy parancsot, annak jellemzően van egy kimenete. Egyrészt elvégzi a feladatát, másrészt pedig valamit kiír a terminálba. Természetesen sok esetben a parancsnak nincs közlendője számunkra, így semmit nem ír ki :). Ezzel jellemzően nincs is semmi probléma, ha semmit nem ír ki, nincs olyan, ami hibajel lenne, azaz elvégezte az általunk kiadott parancsot. Bár az elején furcsa lehet, amikor nem ír ki semmit, mintha semmit sem csinált volna, de ez egy idő után már egyértelmű lesz: csak akkor „sír”, ha valóban gond van. Akkor sincs probléma ha a kimenet, amit a terminálba szépen beír nekünk pár sor. 5-10 sor amit kényelmesen el tudunk olvasni, értelmezni. Akkor van különösebb probléma, ha ez a kimenet hosszú, mi pedig elemezni, vagy legalábbis megnézni szeretnénk. Én tudom, hogy a legtöbb terminálemulátor programban visszafele is tudunk görgetni, azaz puffereli a kimeneteket, és azokat meg tudjuk nézni utólag. Ez odáig jó, amíg be nem csukjuk a terminálablakot, hiszen akkor ezek a kimenetek jellemzően eltűnnek. Ha később szeretnénk megnézni ezeket, akkor újra le kell futtatni parancsot.

Az egyszerű megoldás, de kissé korlátos a lehetőség

Elég kényelmetlen, illetve hibakeresésnél nehézkes, egy programot elindultunk legörget több tucat képernyőnyi szöveget, és abban ide-oda kell görgetni, ha valamit keresni szeretnénk. Elég kényelmetlen... Így érdemes tudni, hogy a képernyőn megjelenő szöveget mi át tudjuk irányítani egy sima szöveg fájlba egy egyszerű megoldással, azaz beírod a parancsot majd mögé teszel egy kacsacsőrt, megadod a fájlnevet amibe szeretnéd átirányítani a kimenetet. Ez nagyon praktikus! Véleményem szerint érdemes is kipróbálni. Tedd meg most: Nyitsz egy terminál, beírod, hogy

ls > kimenet.txt

szépen be fogja írni a kimenetet a kimenet.txt-be, amit meg tudsz nézni egy akármilyen szövegszerkesztővel, vagy egyszerűen a cat programmal. Szuper! Ezt általában elég sokszor használjuk, ha szeretnénk megnézni milyen sirámokat velünk egy-egy program. Szerintem ezt mindenki ismeri, hiszen a kimenet átirányítása nemcsak programból egy szövegfájlba működik, hanem egymásután a programokat össze is tudjuk fűzni különböző megoldásokat. Így ezek az átirányítások nem okoznak nagy problémát olyannak, aki egy kicsit is járatosabb terminálos munkában. A gond akkor van, és ez a cikk pontosan azért született meg, ha több, egymás utáni parancsot futtatunk, azoknak a kimenetét szeretnénk egy szövegfájlba összefűzni. Nyilvánvalóan megtehetjük, hogy első parancs kimenetét az egy.txt-be, a második parancs kimenetét a második.txt-be, stb. stb…  irányítjuk át. Majd összefűzzük a kimeneti szövegfájl, és abban keresünk. Ez nem valami profi megoldás, ráadásul elég sok időt is elvesz. Illetve van egy másik megoldás is: ugyanabba a szövegfájlba irányítjuk az egymásután következő parancsok kimenetét. Ekkor egy listaként kapjuk meg. Ezek hátránya, hogy sok esetben kihagytam egy-egy parancs kimenetét, így hiányos lett a mentésem.

Profibb megoldás Linux alatt

Bár ez is megoldás, de én most egy programot szeretnék ajánlani számotokra. Ez jellemzően alapból telepítve az összes rendszeren, bár szerintem nem sok ember használta ezt: a neve script. A használata egyszerű. Bár a script több és összetettebb feladatokra is alkalmas, de én az alapokat mutatom be. A többi man script.

script faljneve

Azaz elindítjuk a programot, megadva azt a fájlnevet, amibe mentsen. Ha elindul a rögzítés ezt látjuk:

script faljneve
A parancsfájl elindult, a fájl: faljneve

Visszakapjuk a promptot, és már dolgozhatunk is. Egymásután begépeljük a végrehajtandó parancsokat úgy, mintha nem is futna a háttérben a rögzítés. Majd amikor végeztünk, akkor:

exit

paranccsal lépünk ki a rögzítésből.

exit
A parancsfájl kész, a fájl: faljneve

Ezután megnyithatjuk a fajlneve állományt, bármely  általunk kedvelt szövegszerkesztővel, vagy akár a cat, more stb. paranccsal is.

#]2;yay -Syu –noconfirm##]1;upall
#[sudo] laci jelszava:
#[1;34m::#[0;1m A csomagadatbázisok szinkronizálása…

Egy Arcolinux alatti rendszerfrissítésről készült mentés részletét látjátok. Azért kerül be ide, mert felmerülhet az a kérdés, hogy ez majdnem egy keylogger programszerűség és mivel „mindent” rögzít, így nem okoz biztonsági kockázatot? Ahogy látni nem rögzíti a jelszót, csak azt, ami a terminálban is megjelenik. Így nem kell aggódni, hogy egy sima szövegben ott lesz a jelszavad. Tudom, hogy nem egy mindennap használt, populáris program, de egy kényelmesen használható segítség. A programot Arcolinux alatt próbáltam ki, 2020. januárjában. 

Ez is a blogomban jelent meg...