Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Šta izabrati? Bash ili Python?

[es] :: Skript jezici :: Šta izabrati? Bash ili Python?

Strane: 1 2 3

[ Pregleda: 8926 | Odgovora: 59 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Šta izabrati? Bash ili Python?11.12.2018. u 08:25 - pre 64 meseci
Mislim, koristim bash vec duze vreme, ali skripte koje sam pisao uglavnom je izvršavanje red po red bez neke logike. OK koristio sam "if" ali ništa značajnije od toga. Tipa, ako je danas 1. u mesecu onda izvrši tu komandu umesto one prve.
U principu nisam ni svestan šta se sve može, pa me interesuju šta da odaberem da se posvetim malo više.
Python sam naučio neke osnove, ali opet nedovoljno da bih znao kako da primenim.

- Da li da odaberem python ili bash za unapredjivanje znanja?
- Imate li predlog za neku literaturu? Nešto što se više oslanja na neke vežbe, zadatke, a usputno teorija?


Moj trenutni nivo bih opisao sa stranicom 9 u ovoj knjizi
https://www.tldp.org/LDP/abs/abs-guide.pdf

Moje skripte su izgledale otprilike kao primer 2-2. Dok 2-3 ja daleko od onog što znam.

[Ovu poruku je menjao CoyoteKG dana 11.12.2018. u 09:35 GMT+1]
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Šta izabrati? Bash ili Python?11.12.2018. u 08:43 - pre 64 meseci
Uči obe stvari.

Ja samo imao nekoliko hiljada linija shell skriptova (doduše ksh, ali je to skoro isto kao bash), biblioteke sa najčešćim funkcijama koje sam uključivao u druge skriptove.
Stvar je prosta, ako posao radi bash skript koristi njega. Ako posao radi awk, koristi awk. Ako ne, možda Perl pomogne, ili Python.

Prednost bash programiranja je što bash već postoji na svakom Linuxu, Python mora da se instalira. Ili možda postoji verzija 2.7 a tebi treba baš verzija 3+. Sa druge strane, Python je pravi programski jezik, ogromna podrška, gomila biblioteka koje možeš da iskoristiš.

Koristi ono što ti je najjednostavnije i što radi posao.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 15:56 - pre 64 meseci
recimo napisah sad jednu skriptu za instalaciju Jenkins od početka na Centos 7 minimal ISO

Je l' ovako nešto može da se nazove "osnovama pisanja bash skripti"? :)
Nemam prdstavu kad ljudi traže poznavanje bash scripting jezika, šta to podrazumeva.
Nešto više od ovoga jedino što bih mogao da uključim if else petlje. Recimo ako bih hteo da napišem da skripta radi i za Centos 6.

#! /bin/bash
# This script will install Jenkins on CentOS 7 minimal ISO

PASSWORD="nekipassword"
DOMAIN="jenkins.domain.cc"


# installing useful tools
yum -y install vim net-tools wget telnet

# install nginx
yum -y install epel-release
yum -y install nginx
systemctl enable nginx
systemctl start nginx
systemctl stop firewalld
systemctl disable firewalld

# Install Java and Jenkins
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum -y install jenkins java
systemctl enable jenkins && systemctl start jenkins

# Setup vhost/server block
mkdir -p /var/www/$DOMAIN/public_html
echo 'Hello world!' > /var/www/$DOMAIN/public_html/index.html
chmod 755 /var/www/$DOMAIN/public_html
mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled
sed -i '/http {/a include /etc/nginx/sites-enabled/*.conf;\nserver_names_hash_bucket_size 64;' /etc/nginx/nginx.conf

echo "server {

listen 80;
server_name $DOMAIN;

location / {

# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 90;

proxy_redirect http://127.0.0.1:8080 http://$DOMAIN;

# Required for new HTTP-based CLI
proxy_http_version 1.1;
proxy_request_buffering off;
# workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651
add_header X-SSH-Endpoint jenkins.domain.tld:50022 always;
}
}

" > /etc/nginx/sites-available/$DOMAIN.conf

sed -i '/location \/ {/a\ proxy_set_header Host $host:$server_port;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;' /etc/nginx/sites-available/$DOMAIN.conf

ln -s /etc/nginx/sites-available/$DOMAIN.conf /etc/nginx/sites-enabled/$DOMAIN.conf
#set selinux
yum install -y setroubleshoot-server selinux-policy-devel
semanage port -m -t http_port_t -p tcp 8080
chcon -Rt httpd_sys_content_t /var/www/
systemctl restart nginx jenkins

# enable jenkins user to login to ssh and create keys
yum -y install sshpass
echo -e "$PASSWORD\n$PASSWORD" | passwd jenkins
sed -i 's/\/var\/lib\/jenkins\:\/bin\/false/\/var\/lib\/jenkins\:\/bin\/bash/g' /etc/passwd

mkdir /var/lib/jenkins/.ssh
ssh-keygen -f /var/lib/jenkins/.ssh/jenkins -t rsa -N ''
cp /var/lib/jenkins/.ssh/jenkins.pub /var/lib/jenkins/.ssh/authorized_keys
mv /var/lib/jenkins/.ssh/jenkins /var/lib/jenkins/.ssh/id_rsa
chown -R jenkins /var/lib/jenkins/.ssh/
echo -e 'Host *\nStrictHostKeyChecking=no' > /var/lib/jenkins/.ssh/config


Sledeće recimo što bih mogao je instalacija letsencrypt sertifikata.




[Ovu poruku je menjao CoyoteKG dana 16.12.2018. u 17:20 GMT+1]
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 17:25 - pre 64 meseci
Par zamerki :
Code:

systemctl stop firewalld
systemctl disable firewalld

Zasto ovako?

Sta fali firewalld-u? Zasto ga disable-ujes? Mnogo bi bilo bolje da si dodao port 80 (ili, jos bolje 443) u public zone. Uspust dodaj i fail2ban ;)
Code:
 chcon -Rt httpd_sys_content_t /var/www/

Ovo ce ti se pokarabasiti vremenom. Probaj sa
Code:
semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"

pa onda samo restorecon.
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 17:40 - pre 64 meseci
pitanje je vise bilo za skriptu kao skriptu, da l je uobicajeno tako pisati :). A ako su samo to zamerke ja sam zadovoljan.

firewalld sam iskljucio kao najlakse u momentu da nastavim sa instalacijom, jer svakako planiram umesto firewalld da stavim iptables jer se tu bolje snalazim.

selinux... tu sam tanak mnogo. Jednostavno nije mi radio nginx pa sam to izguglao kao resenje ali pojma nemam šta je.
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 17:58 - pre 64 meseci
Obe uci brate. Bash ce ti znaciti za "skracivanje" posla u cmdl u linuxu, pythonom ces moci da napravis neke stvari. Malo su razlicite stvari, python jeste skripting ali ne klasican, vise je ono "programski jezik koji se ne kompajlira", dok je bash skripting. Ja sam radio paralelno sta mi je trebalo. E sad, uz bash treba da ucis i neke "cake", tipa kako da ti interpretira samo onu datu koju ti zelis, itd... Mnogo su razlicite primene.

Za Python ti ZESTOKO predlazem da dignes Jupyter na masini i radis preko notebookova za pocetak.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 20:55 - pre 64 meseci
@CoyoteKG: Šta skripta radi ako ti neka od komandi pukne?
 
Odgovor na temu

peromalosutra
Ivan Rajkovic
Software engineer
Luxoft
Berlin

Član broj: 54774
Poruke: 871
..ynamic.kabel-deutschland.de.



+148 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 21:09 - pre 64 meseci
I ja bih rekao da je dobro znati oboje. Bash je super korisan i kada ne pišeš skripte, već radiš interaktivno u konzoli, npr. hoćeš da uradiš mass rename fajlova i slično. Za početak ne moraš da ulaziš u neke dubine, ali je super korisno da znaš par osnovnih stvari: uslovi, petlje, manipulacija stringovima, pipes. Awk je takođe veoma zgodan i iako je jezik sam za sebe, lako se integriše sa bashom pa je zgodno uraditi makar nekoliko primjera da se upoznaš sa konceptima. Npr ako pokušavaš formatirati izlaz iz nekog log-a u drugačiji format, tu awk dominira.

Python je sledeća stepenica na koju prelaziš kada je problem takav da je nezgodan/previše kompleksan za rješavanje kroz čisti bash, npr. ako imaš nekih izračunavanja, ili ti je potrebno nekakvo mapiranje (dictionary).





 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 22:04 - pre 64 meseci
@jablan,

sta bi valjalo da radi? :)

Citat:
npr. ako imaš nekih izračunavanja, ili ti je potrebno nekakvo mapiranje (dictionary)

I dalje ne kapiram kako bi mogao to da upotrebim :)

zlatni, imao sam jupyter dok sam ucio.
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 22:09 - pre 64 meseci
Pa valjalo bi da proveri da li je pukla komanda i ako jeste da ne nastavlja dalje.
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 22:11 - pre 64 meseci
kako :)


edit:
ok izguglah error handling, videcu.

Evo lepog objasnjenja
http://linuxcommand.org/lc3_wss0140.php



[Ovu poruku je menjao CoyoteKG dana 16.12.2018. u 23:27 GMT+1]
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Šta izabrati? Bash ili Python?16.12.2018. u 22:32 - pre 64 meseci
Pa svaka komanda na Unix-u ima exit code koji mozes da proveris iz shell-a.
To je onaj famozni int main(void) ;)

recimo ls | echo $? ti ispise 0 ako je sve ok sa prethodnom komandom.
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 00:05 - pre 64 meseci
@Coyote

set -x


Ukucaš to gore na mestu odakle hoćeš da bash shell krene da debuguje i da ispisuje svaki korak svake komande na ekranu.

set +x


Staviš ovo iznad kao završnicu.

Kad pišeš neku bash skriptu dakle, pratkično ti i ne treba set +x na kraju, već samo početni `okidač`. Neka prošparta sve, jel' da?

Kad si ustanovio da nema grešaka, obrišeš set -x i to je to.


Osim toga, to gore što si postavio, pa šta ja znam ... imaš tu neke yum (sudo) komande u tom fajlu

Ako je tako, makar ovo kao dodatak, neće da škodi ..

Code (bash):

if [ "$EUID" -ne 0 ]
then
    echo "* [ERROR] Run this script under 'sudo -s' or as root"
    exit 1
fi
 


Osim toga, ako si se već naložio da kreneš da programiraš ili pišeš skripte.. Funkcije `đole`, funkcije..
Uči ih odmah.
about:networking
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 04:56 - pre 64 meseci
Citat:
CoyoteKG:
pitanje je vise bilo za skriptu kao skriptu, da l je uobicajeno tako pisati :). A ako su samo to zamerke ja sam zadovoljan.

firewalld sam iskljucio kao najlakse u momentu da nastavim sa instalacijom, jer svakako planiram umesto firewalld da stavim iptables jer se tu bolje snalazim.

selinux... tu sam tanak mnogo. Jednostavno nije mi radio nginx pa sam to izguglao kao resenje ali pojma nemam šta je.


Preskocih ovaj post pa bih te samo malo posavetovao:

Naviknes se lako na firewalld, veruj mi ume da bude i preglednije nego iptables. Samo se radi o zonama koje su vezane za konekcije i tu otvaras portove. Generalno ako ces RHEL/Fedoru/CentOS da koristis, moraces da se naviknes na fwd.

Batali selinux. Nikad nemoj da koristis enforcing pre nego sto skapiras sta radi uopste. Znaci u 99% slucajeva kada sam prelazio sa Debiana ka Fedoru kao glavni distro koji koristim, lupao sam nocima glavom u sto jer stvari nisu radile (samba npr, to mi je najveci utisak ostavilo, 6h sam se mucio), i na kraju je SVE proradilo kada sam ugasio selinux.

Btw, kakav ti je plan za dalje? Sta bi zeleo da postignes sa bashom i pythonom? Ako te interesuje bas skripting i pravljenje konkretnih, vrlo funkcionalnih stvari uz sto manje muke, python je za to. Bash je vise za generalni rad sa linuxom nego bilo sta drugo. Vecina nas koristi bash skripte kako se ne bi na svakoj masini maltretirali satima da instaliramo isti sw :) Meni dobro dodje ako moram da povlacim nesto iz cmdl uz awk i filtriram podatke, ako izradjujem bekend servis ili nesto slicno, sto treba da radi i neki monitoring masine.
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 07:46 - pre 64 meseci
Citat:
CoyoteKG:
pitanje je vise bilo za skriptu kao skriptu, da l je uobicajeno tako pisati :). A ako su samo to zamerke ja sam zadovoljan.

Skripta kao skripta je CITKA, sto je bitnije od dobro napisana. Da pises if i error handling, meni je overkill. Iskreno, meni bi ovo bilo dovoljno.

Zamerke da treba error handling jesu na mestu, ali za ovo ti ne treba ni bash ni python, vec je mnogo bolje da koristis neki gotov alat tipa ansible. Dobar ti je uvod i u python, sasvim je dovoljan za ovakve primene, sve moze da se instalira kroz njega a laksi ti je nego cisto python.

Zamerka da nema na masini python i nije neka, a ansible ima tu prednost da ga pravis da radi remote: Napravis playbook, izvrsis ga na SVOJOJ masini, a on instalira remote masinu. Samim tim, requirements nisu problem, stavise manje su za server - jer ne treba nista, sve se izvrsava na jednom mestu, i odlicno je za rad. Ja imam nekih zamerki ali ja sam prvo poceo ansible i i dalje mi je sjajan alat za brdo stvari.

Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 07:50 - pre 64 meseci
Citat:
Zlatni_bg:
Batali selinux. Nikad nemoj da koristis enforcing pre nego sto skapiras sta radi uopste. Znaci u 99% slucajeva kada sam prelazio sa Debiana ka Fedoru kao glavni distro koji koristim, lupao sam nocima glavom u sto jer stvari nisu radile (samba npr, to mi je najveci utisak ostavilo, 6h sam se mucio), i na kraju je SVE proradilo kada sam ugasio selinux.

Ovo je jako glup savet IM(NSH)O. SE Linux je postao norma u nekoj ozbiljnoj primeni, jedini koji ga jos uvek "gase" su pametnjakovici sa stavom "to nema na Debian/Ubuntu". Jako je i dobar i mocan alat, a ne treba mnogo vremena da se pokapira kako radi. Po meni odvojiti nedelju dana da pokapiras kako radi Mandatory Access Control vredi samo tako. Prednosti koje donosi su mnogo, ali mnogo vece od "troska" da provedes nedelju dana da naucis kako radi. Dokumentacija je dobra i obimna, primera ima puno, a zauzvrat te "brani" od vise klasa problema koje mogu da te strefe.

Po meni "iskljuci SE Linux, lakse je", je ekvivalent onome "stavi samo chmod 777 meni tako radi".
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

Zlatni_bg
Nikola S
Beograd

Član broj: 65708
Poruke: 4420
*.dynamic.sbb.rs.



+498 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 08:00 - pre 64 meseci
Moras da imas u vidu da je Coyote do sada radio sa Windowsom, kao sysadmin ili sys engineer. Ne znam koliko je do sada imao iskustva sa linuxom jer ga nije spominjao na forumu. Mnogo vise ce ga kociti selinux u svemu tome u ovoj fazi nego sto ce mu doprineti. Naravno da selinux ima svoje vrline (ogromne) ali tek kada naucis da ih koristis.

Znaci moj savet nije bio samo "batali selinux", vec "nemoj da ga enforcujes dok ne naucis sta radi".
THE ONLY EASY DAY WAS YESTERDAY
 
Odgovor na temu

Burgos
Nemanja Borić
Amazon Web Services
Berlin

Član broj: 12484
Poruke: 1947
*.m247.ro.

Sajt: stackoverflow.com/users/1..


+480 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 08:12 - pre 64 meseci
Citat:
Branimir Maksimovic:
Pa valjalo bi da proveri da li je pukla komanda i ako jeste da ne nastavlja dalje.


Dovoljno je samo da stavi
set -e
na vrh skripte ;-).
 
Odgovor na temu

nkrgovic
Nikola Krgović
Beograd

Član broj: 3534
Poruke: 2807

ICQ: 49345867
Sajt: https://www.twinstarsyste..


+655 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 08:16 - pre 64 meseci
Citat:
Zlatni_bg:
Moras da imas u vidu da je Coyote do sada radio sa Windowsom, kao sysadmin ili sys engineer. Ne znam koliko je do sada imao iskustva sa linuxom jer ga nije spominjao na forumu. Mnogo vise ce ga kociti selinux u svemu tome u ovoj fazi nego sto ce mu doprineti. Naravno da selinux ima svoje vrline (ogromne) ali tek kada naucis da ih koristis.

Znaci moj savet nije bio samo "batali selinux", vec "nemoj da ga enforcujes dok ne naucis sta radi".

Ja ga eto, cenim - u smislu da vidim da se trudi - i nekako mislim da on to moze da savlada. :) On ovo ionako radi da bi ucio, pa k'o velim, bolje da uci odma redom sve sto ce da mu treba.

Komentar je bio vise da ne ostane ovo kao savet, a moj stav o kolegi je onaj sa pretpostavkom da on moze mnogo. :D
Please do not feed the Trolls!

Blasphemy? How can I blaspheme? I'm a god!'
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Šta izabrati? Bash ili Python?17.12.2018. u 08:28 - pre 64 meseci
Citat:
Burgos:
Citat:
Branimir Maksimovic:
Pa valjalo bi da proveri da li je pukla komanda i ako jeste da ne nastavlja dalje.


Dovoljno je samo da stavi
set -e
na vrh skripte ;-).


Da, moze i to kad nemas nista drugo osim linijskih komandi.
 
Odgovor na temu

[es] :: Skript jezici :: Šta izabrati? Bash ili Python?

Strane: 1 2 3

[ Pregleda: 8926 | Odgovora: 59 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.