Használható AI/MI shell script írásra.

Fórumok

Hi Mindenki! 

Volna egy kissé bonyolultabb feladat Bash-ben, gondoltam itt az idő , hogy kipróbálom az agyonhypolt MI/AI lehetőségeket. 

Hát, a gúúgli kereső javaslataival jó nagy pofára esés lett.  

Naszóval... létezik egyáltalán AI-s shell script generátor ami ismeri a linuxos progikat? 

 

Kösz. Üdv. Sz.

 

Update#1:  Először is bocsánat, kissé elterelődtem a problémától. 

Másodszor, úgy látom a kérdésemre adott lényegi válasz az az, hogy nem igazán van olyan model/motor amit keresek. Merthogy az oké hogy elvileg megspórolom a script gépelést, de mégse, mert mire kipasszírozom az AI-ból, hogy mit szeretnék, addigra kb ugyanott vagyok a gépeléssel. Szóval ez így sucks. És igen, nem vagyok programozó. Pont ez a bajom. De azért adtatok ötleteket. Pl hogy lehet, hogy pythonnal menne. Meg a többi speckóság. A hozzászólásokhoz a válaszok külön ott. 

Hozzászólások

kb bármelyik aktuális top tier modell, inkább rajtad múlik hogyan kérdezel és milyen információval látod el. 

Az emberek többségének a chatGPT jól válaszol, ha jól kérdeznek tőle. Finomítsd a kérdésed. Van egy komplexitási szint, amit elérve exponenciálisan egyre hülyébbé válik, ezt nem szabad elérni.

Rakd össze fejben, hogy mit akarsz elérni. Bontsd le magadban rész problémákra, például függvényekre. Egyszerűbb függvényt lehet, hogy egyben megír, de ha bonyásabb akkor azt is szedd szét logikai részekre. Nem igazán lehet így távolról megmondani, hogy mit tud és mit nem, mert ezek nem egzakt "tudások".

Írj ide példákat nekünk, hogy mivel próbálkoztál, és akkor arra már tudunk kevésbé általános válaszokat adni, hogy mit módosítanánk a promton és miért.

Form follows function.

Barmelyjk jó, az én javaslatom Perplexity bongeszoben, de inkabb Claude code parancssorban. 

Egy tanacsot fogadj meg: ne a hibat keresd benne, ne azt akard megmutatni, hogy nem 100%-os, Te biztos jobban erted a sajat muszaki problemat. Azt nezd hogy mennyivel gyorsabb eloallitani a scriptet es karbantartani sem kell felned. 

Tudjuk, hogy melyik toollal mi volt a probléma, vagy szar az összes, úgy ahogy van? :)

Először az openrouter.ai oldalon az állítólagos legjobb kódert megnyitottam (már nem emlékszem melyik volt az), de egy bizonyos szint után elkezdett egy helyben topogni. Sehogy se tudtam kirúgni onnan. A chatgpt meg konkrétan megakadt az első prompt után. Loopba került. A claudra ezért nem regisztrálnék, a gemini meg pénzes, szóval... eddig bírtam.

Csak akkor szólok hozzá egy témához, ha értelmét látom.

Én python script keretét írattam meg ChatGPT-vel és Geminivel. Mindkettő használható eredményt adott. Mindkettőt terelgetni kellett az úton, szóval nem úgy működik a dolog, hogy kell ez, és megcsinálja és megy. Inkább olyan, mintha egy kollégával dolgoznék valamin, aki elég sok mindent jól tud, de nem hibátlanul, és persze el kell neki a követelményeket magyarázni.

A Gemini által írt script lényegesen robosztusabbra sikerült, mint a ChatGPT scriptje. De ezek mindketten általános modellek, úgy olvastam, hogy vannak direkt programozásra kihegyezett dolgok is, de azokat nem próbáltam.

+1 adalék: próbáltam ChatGPT-t használni, hogy segítsen nekem APEX fejlesztésben, kb. olyan módon, hogy ezt és ezt szeretném. A válaszai sokszor használhatatlanok voltak. Bekamuzta, hogy az akármi menünek az akármi opciója kell, vagy ilyen és olyan nevű paraméter-t kell akármire állítani, és nem volt olyan menü, nem volt olyan paraméter, vagy nem lehetett olyan értéket választani.

Ezt betudtam annak, hogy az APEX nem olyan széles körben használt, ezért valószínűleg sokkal kevesebb információ van róla a neten, mondjuk egy Pythonhoz, shell scripthez vagy C-hez hasonlítva. De az is lehet, hogy a különféle verziók változásait nem tudja ügyesen követni.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Igen baba szkritpeket irattam Claudeval igen rövid alatt. Szerintem 2025-ben egyszerűen erőforrás pazarlás kézzel szkripteket írni.

Bontsd részekre a problémát, mint mikor programozol, ha az egésszel egy menetben nem is boldogul, de esetleg pár részmegoldásból össze tudod majd legózni és azokat se neked kell majd megírni. 

Én úgy használom, hogy iteratívan, csak a problémákra fókuszálva módosítok.

Szóval ha adott egy keret scriptet, akkor azt a keretet nem fogom később lecserélni egy újra generált akármivel (nem arra kérem, hogy generáld az egészet le, valami változtatással, hanem azt mondom, hogy ez és ez a rész nem azt csinálja, amit akarok, mert pl. ez a bemenet és nem találja az akármit.
Ilyenkor az AI nem egy új scriptet ad (ami adott esetben a jó kódot szétzilálhatná), hanem az adott 1-2 sor helyett ad valamit.
És ezt már a saját tudásommal és intelligenciámmal megtámogatva teszem be az adott helyre, a korábbi verziót megtartva és kikommentelve. Szóval ha valami elcsesződne, akkor vissza tudok egyszerűen állni az előző állapotra.

Ahogy írtam korábban, ne úgy gondolj erre, mint egy scriptíró robotra akit nem kell ellenőrizned és irányítanod, hanem úgy, mint egy kollégára, akivel párbeszédet folytatsz. Ha a kolléga hülyeséget mond, vagy olyan irányba gondolkozik, amit nem akarsz, akkor rászólsz és elmondod, hogy mit szeretnél ahelyett. Ugyanezt kell tenned az AI-jal is.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Kicsit OFF: Ha már az elején látszik, hogy bonyolult a feladat, akkor inkább pythonban kezd el írni.

Az AI -tól meg mindig csak kis dolgokat kérdezz, úgy ritkán hibázik.

Form follows function.

OFF: Amberlang (https://amber-lang.com/)

High-level, python szerű scriptnyelv ami bash-re fordul. Lehet nem most és lehet nem ehhez a projektedhez, de jó lehet a jövőben. Van egy folyamat bővülő standard libje is, egyszerű adaszerkezetekkel, string kezeléssel, stb.

Hát hogy ki a francnak jutott eszébe ilyen perverzió, és hogy a többiek miért nem csapták agyon :D

Természetesen értem én, hogy miért jó az, ha van egy normális nyelv, ahol nem kell azzal szenvedni, amire én is szoktam itt panaszkodni, hogy nem jó, de ami mégiscsak elfut a már mindenhol ott levő shell interpreteren. De ettől még a zsigeri gondolat az az, hogy jézusanyám :D

Ja, azt értettem, hogy mit jelent, csak jajj :D

(egyébként ők is a compile szót használják a doksiban, valójában nem egy tiszta határvonal ez, pl a babel is compilernek hívja magát)

Viszont ha már így belenéztem a doksiba, az is mire gondolt, aki úgy gondolta, legyen a function keywordje az, hogy 'fun'?

A gcc is az technikailag, assemblerre transpileol :)

Teljesen maszatos ez a definíció, azt szokták ilyen gumicsont mondani, hogy azonos szintű nyelvek közt transpile, lefele compile. Illetve azt is, hogy minden transpile compile, de nem minden compile transpile. Szóval valójában ez eléggé ahogy esik úgy puffan.

A fordításra a lelkemmel legszebben együtt zengő értelmezés a következő:

A fordítás azután készült, hogy az aszútésztát egyszer már kipréselték, a jó minőségű aszúbort kinyerték belőle.

A fordítás egy hagyományos tokaji borfajta, korábban elterjedt és elfogadott volt, és jó ár-érték arányúnak számított.

A bortörvény szerint a fordítás: "a kipréselt aszútésztára felöntött, meghatározott termőhelyről származó mustból, vagy azonos évjáratú borból alkoholos erjedés útján készült, fahordóban érlelt tokaji borkülönlegesség, amely jellegzetes érlelési illattal és zamattal rendelkezik." Kötelező érlelési ideje 2 év, ebből minimum 1 év fahordós.

A fordítás tehát azután készült, hogy az aszútésztát egyszer már kipréselték, a jó minőségű aszúbort kinyerték belőle. Ezt az aszútésztát öntötték fel aztán ismét újborral vagy musttal. Ha elég jó minőségűek voltak az aszúszemek, akkor ilyen módon másodszorra is jó bort nyerhettek belőle a borászok. A második préselés általában néhány órás, vagy egy éjszakás áztatás után történt. A végeredmény bor általában édes, de magasabb csersav tartalmú, vajas textúrájú, sokszor teás ízjegyeket mutató lett.

:-)


 

Form follows function.

Érdekes koncepció. Biztosan van olyan helyzet amikor pont ez kell, de én kis dolgokra bash -t, nagy dolgokra parasztos python -t szoktam használni. Még annál is nagyob dolgokra OOP pythont, és ha csillagrombolót kell építeni, akkor jöhet a C#, vagy esetleg a C++. Bár utóbbihoz hardver közeli projekt kell, olyanom meg 10+ éve nem volt. Ha szopatni akarom magam akkor Powershell. Ellenben annyit még sosem ittam, hogy bevállaljak egy Visual Basic projektet, van azért olyan amire még én sem vetemedek. Poénból néha szóba jön gy kis PHP, meg hozzá Javascript és HTML, öreg embernek old-school webfejlesztéshez ez pont elég, lévén a modern java és egyéb keretrendszerekre még sosem volt szükségem. Ezek után még egy programnyelv annyira nem vonz. Na, megyek Ansible -t hegeszteni...

Form follows function.

Copilot modelljei (pl claude) nekem bejöttek. Csodát nem fog csinálni, ha nem tudom részekre bontani és rendesen angolul specifikálni a problémát, akkor nem fogja ő se megoldani (garbage in/garbage out). Illetve az is szükséges, hogy a generált kódot átlásd, mert időnként alapvető programozási hiba kerül bele. Az első tesztfuttatásnál (tesztkörnyezetben) látni fogod, hogy valamit nagyon benézett.  Ha viszont meg tudod neki fogalmazni, hogy miért szar, amit írt , akkor kijavítja. 

Összességében nekem hasznos volt.

Disclaimer: nem vagyok programozó, devopsosként rövidebb szkripteket kell írnom. Szóval semmiképp sem arról szól a véleményem, hogy összetett produkciós környezetben használt alkalmazást írnék ilyesmivel,  a szkripteket, amit készítek tesztkörnyezetben próbálom ki és át is olvasom előtte. Amit megtakarítok: a gépelés és az adott szkriptnyelv szintaktikai hülyeségeinek eltalálása. Amit nem takarítok meg: gondolkodás, probléma definiálása, tesztelés.  Amire egyáltalán nem jó: fogalmatlan embereknek a munka megspórolása. 

és rendesen angolul specifikálni a problémát

Angolul jó Claude-nak csak?

Én általában angolul beszélgetek az AI modellekkel, és a programozást is csak angolul próbáltam, de pl. amikor vízvezeték szereléskor magyarul kezdtem a beszélgetést (főleg azért, mert vannak olyan szakkifejezések, amiket nem tudok angolul), csont nélkül magyarul válaszolt a ChatGPT. Értette, amit írtam, és a válaszai is jók voltak. Ennek alapján azt feltételeztem, hogy bármilyen nyelven adhatnám az instrukciót, ugyanazt (már amennyire kétszer utasítva ugyanazt generálja) az eredményt kapnám.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

gyors szkriptekre mindig vs code-ban github copilotot használom (főleg claude sonnet 4.5). kerek mondatokban megfogalmazom magyarul a problémát, pár példát, elmondom, mi az, ami rossz irány lenne. aztán megmondom neki, hogy minden lépésben ellenőrizze, amit csinál, ha elakad, nézze meg a dokumentációt. mindent engedélyezek, entert nyomok, iszom egy kólát, mire visszajövök, az esetek nagy százalékában minden megvan. aztán ha valami mégis rossz, akkor még egy iteráció.

jó promptot kell írni, és jó modellt kell választani.

4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.

"jó promptot kell írni, és jó modellt kell választani."  

A jó model volt a kérdésem, de a válaszokból úgy tűnik, ilyen nem nagyon van. 

A jó prompthoz meg kellene még egy AI, ami megfogalmazza az AI-nak hogy mint szernénk tőle :))) . Zseniális!

Csak akkor szólok hozzá egy témához, ha értelmét látom.

A jó prompthoz meg kellene még egy AI, ami megfogalmazza az AI-nak hogy mint szernénk tőle :))) . Zseniális!

Sokan vannak ezzel így :-) és ez nem jó sajnos. Tételezzük fel hogy találkozol egy olyan emberrel, aki ért ahhoz amit szeretnél, beszélgettek, de fél szavakból nem fogja megérteni mit szeretnél. Nem gondolatolvasó. Ahhoz hogy teljesen képben legyen részletesen el kell magyarázni mindent. Ha nem teszed meg, csak kérdéseket kérdésre halmoz majd, és minden amit gondol rossz irányba terelődik. 

Ugyan ez a helyzet az LLM-ekkel is. Sokkal jobb leírni mindent, ha nem is 100% részletességel, és abból egyszer dolgozni.

Én kb 10% részletességgel leírom mit szeretnék, és az első dolgom az, hogy összefoglaltatom az LLM-el hogy érti-e azt amit szeretnék. Ha nem teljesen az, akkor addig javítom a leírtakat amíg 100%-os értelmezést el nem érek. Ez ~a dokumentáció. Innentől kezdve dolgozhat. Közben meg ha azt tapasztalom hogy "kilengett", akkor megismételtetem vele részletesen a feladatot, és azonnal visszaterelődik a jó irányba.

Ha látom hogy hosszúra nyúlt, iratok vele egy direkt másik promptnak szóló részletes leírást, amit nem csak egy adott LLM-ben tudok használni, (bár ezek már látják a korábbi társalgást is), hanem bármelyik más LLM is megért.

A végén pedig képes egy dokumentációt írni.

Mondhat akárki akármit, én személy szerint imádom hogy nem kell már kódolnom csak minimálisan, és elég csak elmondani (mert már beszélgertni is lehet veleük egy jó ideje) az LLM-nek mit szeretnék. De azt érthetően.

A jó prompthoz meg kellene még egy AI, ami megfogalmazza az AI-nak hogy mint szernénk tőle

Csak mondom, hogy láttam már arra példát, hogy az emberi nyelven megírt dolgot az AI átírta prompttá. Konkrétan a Gemini Gem készítésekor volt egy gomb, amit megnyomva legenerálta azt a promptot, amit aztán a Gem használt.

disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.

Gem készítéshez szerintem valahol ajánlja is a Google, hogy a Gemini segít jobb promptot írni, meg régebben (1-2 éve) képgeneráláshoz is használtak LLM-et prompt feldolgozáshoz, optimalizáláshoz, stílus, hangulat, stb hozzáadásához - gondolom azóta is.

Mondjuk ez a meta jellegű gondolkodás jellemző ezeknek a hatékony használatára. Meg lehet tőle azt is kérdezni, hogy hogy érdemes tőle kérdezni. Mindjárt meg is kérdezem a véleményét erről.

Nem tudom.

De szívesen megnéznék egy magát AI-val kódoltatásban hozzáértőnek valló által teszőleges feladathoz generált shell-scriptet (Bash-scriptet), hogy mennyire jó, és mennyire fogja a shell nyelvi elemeit valóban helyesen összehozni. (Már csak azért is, mert ha a szerte-szét hentergő scriptkkel tanították, azok elég nagy része nagyon távol áll a jótól.) De ez csak tisztán érdeklődés, ami ráadásul offtopic.

Hát próbáljuk meg. Nekem konkrétan lövésem nincs a bash-hez. Minimális dolgokat tudok megcsinálni benne, kb egy hátulgombolós óvodás szintjén. Mondjuk változókat tudok használni, de egy ciklusnál már néha meg kell néznem, hogy is van pontosan a szintaxis.

Szóval tök jó közvetítő réteg vagyok, hogy megnézzük, valójában mennyire jó az AI.

Mi a feladat, amire ráengedjem?

Pontosan. Ez az egész már túl van azon, hogy egy csetablakban bemásolunk egy hibaüzenetet és várjuk a csodát.

El lehet indulni akár innen

https://code.claude.com/docs/en/overview

vagy

https://developers.openai.com/codex/quickstart

innen is. Vagy pl. a Gemini-vel, a Firebase studio-ban megcsinálni az egészet, ha olyan kicsi a feladat. Mindig a célhoz az eszközt, és most már vannak. Nagyon sok tool van már, a sima promptolás kb annyi, mint mondjuk linux szervernél az "apt install apache", messze nem az a vége. (elnézést a béna példáért)

Pythont meg JS-t eleg jol tudnak irni, pedig az atlag Python meg JS kod minosege sincs sokkal az atlag bash felett. Annyira, hogy a ChatGPT ha matekos feladatot kerdezel tole, ir egy Python scriptet, es lefuttatja, valamelyik konkurencia meg JS koddal tesz ugyanigy.

Ettol fuggetlenul valaki irta korabban hupon, hogy a ha basben elokerulnenek a tombok, az egy jel neki arra, hogy ennek nem bashben kellene lennie. Hasonloan vagyok vele en is, ha kicsit bonyolultabb, nem bashben allok neki. A Python is elotelepitve ott van kb. annyi rendszeren, mint a bash, vagy ha epp nincs, konnyebben felteheto.

A strange game. The only winning move is not to play. How about a nice game of chess?

Ezeket itt mind a Claude írta nekem. Még az install.env működést is a Claude találta ki/ajánlotta.

devenv .linux és itt a scripts mappában is az összes scriptet, és a templates mappa tartalmát is hibátlanra írta a Claude.

Én csak annyit csináltam hogy beállítottam egy környezetet, és odaadtam neki a fájlokat, és leírtam részletesen mit szeretnék, és lépésről lépésre végigmentünk a funkciókon.

De ezeken kívül írt már nekem Arch és Alpine telepítő scripteket is, a szervereim backup, restore és disaster recovery scriptjeit is Claude írta, és működik minden szépen úgy ahogy kell.

Bár annyi előnyöm azért van, hogy tudok programozni, és ha látok egy még nem használt program/script nyelvet, akkor megértem a benne írt logikát.

Kicsit más, de például a Claude-val kapcsolatban észrevettem egy olyat, hogy 3 független helyen, az eredeti oldalán, a Perplexity-ben és a GitHub-on ugyan azt a társalgási mintát használja, ugyan azokat a "tüneteket" produkála mind a három helyen, ha örülök annak amit jól csinál. Ugyan azt a "lelkesedési" mintát követi.

Warp. Ma mar alap terminalom... Pl:

"I need to make sure logrotate is optimized in this system. Investoigate all the services running, their logging configuration and create a report about it. After my feedback for the report generate a script to use jinja2 templating to generate optimised logrotate configurations. Also generate a script that runs from cron and sends a nigthy report about the log usage of the services the results of the logrotate cleanup and generate a journey I can use for further optimizations ina few weeks."

Ez igy parancssorban beirva tok jol megoldotta...

Tudnal irni valami peldat arra, hogy mit probaltal vele megoldani, es mi nem ment?

A strange game. The only winning move is not to play. How about a nice game of chess?

Egyszerűbb cuccokat tud generálni mindegyik, de azt is át kell nézni és megérteni.

Sok script kiddie ezt nem érti, hisz azért generáltat AI-val mert magától nem menne egyáltalán.

Én magyarázatot kérek tőle, leírásokat, infókat és megértem. Hálót kérek tőle és nem halat. Ez a működő megoldás. A többi lutri. Lehet generál neked valamit ami működőképesnek tűnik, de vagy tele van rejtett hibával, vagy jobb esetben csak fingod nem lesz róla mit csinál ha nem akarod megérteni.

Azért vannak hasznos AI alkalmazások, saját szememmel láttam egy ilyen AI-generált shell-scripet, a kommenthez is komment volt, a következő volt a megoldandó probléma: el kellene indítani a jar-fájlban lévő programot, de nem a jar-ba csomagolt *.proprties fájllal, hanem az aktuális könyvtárban lévő fájllal. 

Természetesen, az AI tudja mit kell csinálni: kibontja a jar-t, lecseréli a fájlt, összecsomagolja temporális névre, futtatja, örül.

Csak két dolog nem jutott az AI eszébe, az egyik, hogy kibontás nélkül is le lehet cserélni egy elemet egy jar-fájlban, a másik a classpath nevű mágia.

Claude.ai ami nekem bejott. En ugy teszteltem elsore, hogy volt egy fix feladat, amit betoltam mint kerdest es a claude.ai regisztracio nelkul is megirta jol, nem akartam elhinni, hogy milyen fasza.

Sajnos napi limit van ra, de ez eddig segitett nekem.
Chatgpt-t dobtam, mert perplexity ingyen es claude.ai is ingyen tobbet tud, mint az elofizeteses chatgpt. Kurva sokat hibazott, persze mar lehet hogy jobb lett. Ez a feladat, amit irtam veres verejtekkel volt meg a chatgpt-n, ami a masikon elsore ment.

Local verzio: https://ollama.com/library/qwen2.5-coder:7b
Nekem ez volt az egyetlen verzio, ami tud kodolni. Foleg bash es Ansible-re, meg Terraform-ra hasznalom, de siman tud minden mast is, pl az altalam nagyon gyulolt Python-t is. ;) Siman osszepakolt nekem Ansible-t futtato webszervert, amivel remote-ban lehetett futtatni web-rol az Ansible-t, mint pl az Ansible-tower-ben. Beepitett google authenicatorral, meg minden mas fasza cuccal.

Amin viszont dobtam egy hatast, az az uj  OpenAI-os cucc volt, ez egy relative uj image, meg az ollama motort is upgradelnem kellett, hogy elinduljon: https://ollama.com/library/gpt-oss:20b

Ez kb olyan, mint a Claude es a qwen2.5 komboja, meglepoen sokat tud es konkretan nagyon jo tanulni is, mert ha kered, akkor elmagyarazza, hogy mit miert es hogyan is csinalt.

A qwen2.5-coder Alibabas, az meg hasznalhato egy normal cpu-val is, de a gpt-oss-hez uj motor kell es combos GPU is, nekem egy 8.5k-s Nvidia van erre betolva es ha komplex feladat van, mondjuk egy mongodb-cluster epites Ansible-ben, akkor azzal el van vagy 15 masodpercet, mire osszerakja. Viszont osszerakja rendesen es az mar nem egy egyszeru moka, mert Ansible nelkul is bonyolult. 

A local verziot meg lehet csinalni kb 1.5 ora alatt ( + fel nap szivas volt nekem az nvidia-smi-vel, mert szetbaszta az egesz X-et a gepen :)   ), ha nullarol bogaraszol ossze mindent es ha Linux-od van. :) 
Dockerben van image, amivel kapsz egy komolyabb cuccot, mint a chatgpt-s interface es erre kell meg az ollama-s motor meg az image es mar "repul" is a local AI a gepeden. GPU nem olcso, ha van jo Nvidia kartyad, akkor viszont nyert ugyed van. 
 
curl -fsSL https://ollama.com/install.sh | sh
https://github.com/open-webui/open-webui
https://docs.ollama.com/linux

TL/DR:

online: claude.ai
Local: qwen2.5-coder:7b vagy gpt-oss:20b, ha van jo Nvidia kartya.

dobd ide be a feladatot, ennyi energiával rég megcsináltuk volna helyetted