Jel zna netko kako da napravim scriptu u linuxu umjesto da nesto stalno pisem u terminal da mogu samo kliknuti na scriptu i ona to automatski sve sama u terminalu napravi , jel zna netko ?
Kako napraviti scriptu u Linuxu?
- poruka: 8
- |
- čitano: 6.198
- |
- moderatori:
pirat, Lazarus Long, XXX-Man, vincimus
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Zaboravio si mu reći ako pokrenut skriptu.
Dakle bash skripta.sh ili jednostavno./skripta.sh
Hvala decki :D , A znam ja nju pokrenuti u terminalu ali neznam kako napraviti ju tako da samo kliknem na nju i izvrsi naredbu neku da nemoram tipkat u terminalu :D
Ovisi koji OS imaš, ako imaš neki koji ima GUI:
1) pozicioniraš se gdje želiš da ti skripta stoji (Desktop/neki folder ...) -> desni klik -> new file -> utipkaš što trebaš -> "File -> Save as -> moja_skripta.sh/py/... ovisi u kojem jeziku si pisao skriptu" -> "ctrl+F5" i skripta se izvršava
Ako nemaš vizualni Desktop nego samo terminal na nekoj inačici Linuxa, moraš imati instaliran neki od editora tipa vi, nano, gedit (dosta inačica već ima predinstalirano neki od tih editora):
1) pozicioniraš se gdje želiš sa cd -> upišeš npr. nano ime_skripte.py/sh.. ili nešto drugo -> upišeš kod -> "ctrl+X" -> pita te želiš li save-at pa stisneš "yes" -> "pita te potvrdu imena skripte, stisneš "Enter"
i to ti je to, izašao si iz file-a, piozicioniran si gdje ti je skripta, pokretanje skripte ti je npr za python "python moja_skripta.py" i u terminalu ti se prikazuje output, ako želiš da ti se skripta vrti u pozadini opališ komandu "nohup python moja_skripta.py &" i skripta ti se vrti u pozadini a ti možeš dalje nastaviti raditi u istom terminalu ... "ps -ef" je naredba za provjeriti aktivne procese i ako želiš provjeriti da li tvoja skripta radi možeš je grep-ati (pretražiti ispis po ključnoj riječi "ps -ef | grep moja_skripta.py")
Bla, bla..satra sam te sritno! Za sve dodatne informacije stackoverflow najbrže
Otvori neki text editor, gedit, vi, sta god. Preporučujem da radiš u terminalu, dakle:
vi skripta.sh
#!/bin/bash
echo 'Ovo je naredba 1'
Moraš pokrenuti naredbu chmod +x skripta.sh da bi postala executable (izvršna? :D) te je nakon toga možeš pokrenuti.
Da ne idem u detalje, izvoli koristan link pa prouči: https://linuxconfig.org/bash-scripting-tutorial
E kako se sprema ta scripta.sh kada ju napravim ispisem sve sta sam htjeo i neznam kako spremiti ?
Otvori neki text editor, gedit, vi, sta god. Preporučujem da radiš u terminalu, dakle:
vi skripta.sh
#!/bin/bash
echo 'Ovo je naredba 1'
Moraš pokrenuti naredbu chmod +x skripta.sh da bi postala executable (izvršna? :D) te je nakon toga možeš pokrenuti.
Da ne idem u detalje, izvoli koristan link pa prouči: https://linuxconfig.org/bash-scripting-tutorial
E kako se sprema ta scripta.sh kada ju napravim ispisem sve sta sam htjeo i neznam kako spremiti ?
Ne slušaj linuksaše, oni ti vole tu svoju konzolu, jer si onda izgledaju kao nekakvi hakeri.
Ako koristiš neku distribuciju baziranu na Gnomeu, tada koristi "gedit". Obično u start menijima bude negdje pod tim imenom ili pod "Text editor".
Ako koristiš KDE, tada će to biti "Kate".
Koristiš ih kao i bilo koji drugi normalni tekstualni editor napravljen u zadnjih 25 godina na bilo kojem drugom normalnom operativnom sustavu.
"vi" je alat za fanove pamćenja bespotrebnih i kompliciranih pravila.
Iz editora izlaziš tako da utipkaš :q
Da, to je prva stvar koja mi pada na pamet dok koristim tekstualni editor u 2017. godini.
Pokretanje skripte iz grafičkog sučelja ovisiti će o distribuciji koju koristiš i tipu "shella", jer tu je nekoliko različitih stvari u igri.
No, uvijek možeš pokušati ili dvoklik, ili ako to ne radi - desni klik, pa provjeri ima li negdje opcija "Run in terminal".
Pošto nećeš pokretati iz konzole, tada možeš na kraj skripte staviti komandu koja će pauzirati izvršavanje dok ne pritisneš neku tipku.
Tako ćeš moći vidjeti rezultat izvršavanja i je li nešto otišlo kvragu.
read -p "Pritisni bilo koju tipku za kraj..." biloKojaTipka
Ako zaglaviš, imaš "Linux pitanja i odgovori" temu, to prati više ljudi.
Na edxu ima besplatan tečaj za osnove linuxa LFS101 koji preporučam ljudima koji žele uči dublje u Linux, dolje citiram jedan dio vezan za za kreiranje bash skripti.
Let's write a simple bash script that displays a one line message on the screen. Either type
$ cat > hello.sh
#!/bin/bash
echo "Hello Linux Foundation Student"
and press ENTER and CTRL-D to save the file, or just create hello.sh in your favorite text editor. Then, type chmod +x hello.sh to make the file executable by all users.
You can then run the script by typing ./hello.sh or by doing:
$ bash hello.sh
Hello Linux Foundation Student
Note if you use the second form, you do not have to make the file executable.
Pozdrav forumaši, zezam se sa jednom skriptom već satima i trebam pomoć.
Napravio sam malu skriptu koja restarta GUI od OS-a, Konkretno sadržaj skripte (bez putanje bash interpretera) je systemctl restart lighdm. Skipta radi točno ono što i treba raditi kad ju pokrećem u terminalu sa sudo narebom (sudo ./pokretanje.sh). Ono što ja želim jest da se skipta pokreće automatski kod logina. Premjestio sam tu skriptu u svoj korisnički direktorij (~), i u datoteci .profile na putanji ~/.profile sam na kraju dodao ./pokretanje.sh. Naravno čijela stvar nije radila jer da bi se systemctl pokrenuo treba ga pokrenuti sa naredbom sudo. E sad, moje pitanje je kako to napraviti. Ako u sadržaj skripte stavim sudo systemctl restart light, kod pokretanja mi se pojavi crni ekran sa bijelim kursorom u gornjem lijevom uglu (treperi). Ista stvar se događa ako u datoteci .profile umjesto .pokretanje.sh stavim sudo ~/pokretanje.sh (ili sudo /home/pi/pokretanje.sh). Ako i u .profile i u skipti koristim sudo, rezultat je opet isti. Ovo mi izgleda kao se skripta nikako nemože dobiti root ovasti da se pokrene i zato se pojavljuje taj crni ekran s bijelim kursorom. U čemu je točno problem, ne znam.
Inače, ovo koristim na raspberrry pi-u na Debianu jer imam instaliran emulationstation (RetroPie) "na" tom OS-u. GUI i emulationstation nemogu u isto vrijeme raditi. Zato je konfigurirano da se sustav boota u CLI, automatski se prijavi kao user i iz njega pokrećem GUI ili emulationstation. Ali to mi je počelo ići na živce pa sam složio da pod menu bar>games imam ikonu naziva RetroPie i kad na nju kliknem GUI se zatvara i otvara se emulationstation, a kad izađem iz emulation stationa opet se pokreće GUI.
[Desktop Entry]
Type=Application
Name=RetroPie
Comment=Retro video game emulators
Exec=sudo su -c "systemctl stop lightdm ; ttyecho -n /dev/tty1 \"emulationstation ; sudo systemctl start lightdm\""
Icon=/home/pi/Downloads/retropie_logo.png
Terminal=false
Categories=Application;Game;
Jedino što još želim je da mi se kod logina automatski pokrene skripta koja će pokrenuti GUI (mora ga zatvoriti jer se na kratko pokrene prije nego se pojavi terminal i opet pokrenuti pa ga zato resetiram) da nemoram to tipkati u terminal. Stvar bi naizgled bila jednostavna sa odabirom automatskog bootanja u Desktop nacin rada, ali kad se to odabere, cijela ova stvar sa pokretanje RetroPie-a iz menu bara ne funkcionira (tj. pojavi se isti efekt kao kad GUI pokrećem pomoću naredbe startx, međutim kad ga pokrećem sa sudo systemctl (re)start lighdm stvar funckionira).
Update: Problem riješen, ali ne sa skriptom jer ju nisam uspio natjerati da ispravno radi kod prijave korisnika u OS. Dakle, kod logina u Raspbian prvo se na trenutak pokretnuo GUI koji je u TTY7, a zatim se prebacilo na TTY1. Da se to prebacivanje spriječi trebalo je editirati fajl na lokaciji /etc/init.d/asplashscreen na način da se tekst "fbi -T 2" zamijeni s "fbi -T 1". Znam da rješenje ovog problema ne spada pod ovu temu, ali možda će nekome biti od pomoći.