Învățarea scripturilor shell (bash) are sens programarea ca începător Linux?

Nu sunteți autentificat.

bash

# 1 25/07/2011 14:10:07

Are sens învățarea scripturilor shell (bash) ca începător Linux?

Lucrez cu Arch Linux de câteva luni și îmi place mult, dar nu am avut prea mult de-a face cu bash.
Într-un alt forum am spus că am trecut la Linux (unul dintre multele motive) pentru că vreau să îmi controlez sistemul de operare și nu invers.
Apoi cineva mi-a scris că ar trebui să pot stăpâni corect scripturile shell (bash).

Cu toate acestea, îmi apare întrebarea dacă are sens ca un începător Linux să învețe scripturi shell dacă nu știi prea multe despre sistemul în sine?

Până acum știu doar că bash este același cu lotul din Windows, doar că este mai puternic și în Windows l-am folosit doar pentru a putea porni mai multe programe în același timp sau pentru alte lucruri sălbatice.

Ce anume mai poți obține cu bash?
Care sunt avantajele de a stăpâni bine bash-ul în comparație cu oamenii care nu o pot face deloc?

Ca alternativă, cineva a sugerat că ar trebui să puteți face Python, deoarece puteți face același lucru cu el. Este corect?

Din moment ce am vrut să învăț Python mult timp, acesta ar fi momentul potrivit (din cauza unor exemple practice bune), dar dacă nu funcționează cu Python, intenționez să cumpăr următoarea carte:

Deoarece este foarte scump, aș dori mai întâi să mă asigur cu dvs. dacă este o investiție sensibilă pentru a-mi putea atinge obiectivele sau dacă ar trebui să merg într-un mod mai optim?

Sunt foarte recunoscător pentru ajutorul dvs.

# 2 25/07/2011 14:27:50

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

În primul rând: ar trebui să învățați Bash (sau un alt limbaj de script shell, cum ar fi zsh sau tcsh), mai devreme sau mai târziu oricum. Aceasta este structura de bază, ca să spunem așa. Limbajele scriptului nu sunt de fapt atât de dificil de învățat și vă pot scuti de o mulțime de lucrări manuale. În plus, există acum Powershell sub Windows pentru a corecta acest neajuns. chiar și cu un sistem de operare complet grafic, nu există nicio soluție de bază. Dacă puteți crede administratorilor Windows, Powershell este chiar mai bun/mai extins/mai confortabil decât de ex. bashul.
În teorie, puteți obține orice cu Bash, deoarece limbajul este considerat un Turing complet. Dar cu siguranță nu doriți să doriți să implementați totul cu un limbaj shell shell. Dar sarcinile de bază, cum ar fi logica de pornire a programului sau altele asemenea, pot fi implementate cu ușurință. Chiar dacă doriți să porniți doar câteva programe odată, le împachetați într-un script shell.

La început nu pot spune nimic despre carte în sine, dar la început nu cred că cărțile Galileo sunt rele. De obicei sunt destul de superficiale (opinie personală), dar și potrivite pentru începători. Dar există mai mult decât suficiente resurse gratuite prin bash (și Python, apropo). Folosiți doar motorul de căutare la alegere și bucurați-vă. Și învață bash

# 3 25/07/2011 14:38:48

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Cu siguranță: învață bash (bash)!

Nu trebuie să cumpărați o carte pentru a face acest lucru. Resursele de pe net sunt bogate, nu aveți neapărat nevoie de cunoștințe aprofundate, dar elementele de bază sunt foarte utile. În mod normal, veți învăța oricum pe fugă: Ori de câte ori aveți nevoie de bash, căutați opțiunile și comenzile și apoi începeți programarea! ^^
Folosesc și metoda idiotului: știu ce se întâmplă cu adevărat și când am nevoie, o caut (deși unele lucruri se solidifică oricum); Între timp, am creat deja câteva zeci de scripturi pentru a automatiza diverse procese, atât liniare, cât și interactive.
Am legat următoarele două pagini, care explică multe într-un mod semnificativ și oferă, de asemenea, exemple de aplicații:
http://www.bin-bash.de/index.php
http://linuxseiten.kg-it.de/index.php?i… sh_befehle

# 4 25/07/2011 16:14:22

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Mulțumesc, SaThaRiel și deviant, pentru răspunsurile detaliate.
M-ați ajutat foarte mult.

Așa că probabil îl voi cumpăra pe cel cu cartea și îl voi citi prin intermediul site-urilor web postate aici.

Domeniul de aplicare nu este încă complet clar pentru mine.
Cineva din forum m-a ajutat odată cu un script bash care stabilește automat o conexiune VPN atunci când sunt conectat la o anumită rețea WLAN și care m-a convins destul de mult (pe atunci nici nu știam că poți face așa ceva) sau acest script dispecer este diferit pentru managerul de rețea?

@deviant: Puteți da câteva exemple din cele douăzeci de scripturi?
Pentru că, ca și în cazul rețelelor WLAN, sunt garantate existența unor lucruri despre care nici măcar nu știam că sunt posibile.

# 5 25/07/2011 16:43:28

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Aș recomanda, de asemenea, să vă familiarizați cu funcționalitatea multor instrumente mici (awk, sed, grep, bz etc.). Vă poate scuti de multă muncă și este foarte practic. Restul procesului va urma de la sine, așa cum a scris deviant ^^

# 6 25/07/2011 16:43:59

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

# 7 25/07/2011 16:47:45

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Cele mai evidente sunt scripturile de pornire: Ce se va executa după ce m-am conectat la Linux?
DE oferă propriile opțiuni, inclusiv Openbox și altele asemenea, Compiz nu:

Deci, la început, rulez acest script, din care sunt rulate mai multe scripturi.

„winebinds” leagă unele foldere, pe care le-am mutat într-o altă partiție accesibilă pentru toate sistemele Linux instalate, în folderul/home.

„wlan0ff” este un mic script pe care l-am postat și în wiki-ul englezesc. Verifică dacă sunt conectat la un punct de acces și, dacă nu se găsește ESSID, oprește complet hardware-ul WLAN pentru a economisi energie.

În caz contrar, implică lanțuri mici de comenzi pentru a reseta și reporni conexiunea pppoe, pentru a trimite notificări (de exemplu, când bateria este descărcată) sau pentru a întârzia oprirea până la sfârșitul tuturor descărcărilor:

(Notă: o parte din acest script este împrumutată undeva și a fost inclusă în scriptul meu, sry, în cazul în care cineva nu se simte creditat ^^)
M-am gândit la o modalitate directă de a citi traficul, dar am ajuns cu această soluție.

În plus, am creat scripturi pentru câteva jocuri care ar trebui să îmbunătățească performanța închizând conky și easystroke, dezactivând touchpad-ul, schimbând harta tastelor și apoi începând jocul (precum și anulând aceste modificări după ce este terminat, conky și easystroke din nou începe etc.

Pentru distracție, am scris un mic program care schimbă harta tastelor și oferă diverse informații - 100 de linii care nu fac nimic din ceea ce „setxkbmap” nu ar face. dar m-am plictisit și m-am așezat în tren

Scopul acestor scripturi este de a automatiza comenzile pe care nu doriți să le introduceți manual de fiecare dată sau pe care să le uitați rapid.

Editare: o utilizare foarte utilă a scripturilor este o cronjob care verifică automat actualizările și o indică folosind Conky. În acest scop, mai multe abordări sensibile au fost deja postate aici pe forum, care nu diferă semnificativ.

Postare modificată de deviant (25.07.2011 17:07:29)

# 8 25/07/2011 19:04:21 pm

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

iată un exemplu de la mine. Scriptul este folosit pentru a deschide hard diskul meu extern criptat cu LUKS și pentru a-l monta sau închide într-un anumit director. Am scris că înainte ca Thunar să poată gestiona partițiile LUKS.

Postare modificată de SiD (25.07.2011 19:06:01)

# 9 26.07.2011 4:18:51

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

. Pentru că, ca și în cazul rețelelor WLAN, sunt garantate existența unor lucruri despre care nici măcar nu știam că sunt posibile.

Puteți presupune că aproape tot ceea ce are sens și nu este limitat de slăbiciunile hardware este, de asemenea, posibil. Dacă este necesar, întrebați

# 10 26.07.2011 9:40:32

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Scripturile Shell pot fi folosite și pentru a implementa lucruri „mai mari”, cum ar fi aurget. Acesta este un program pentru a instala programe din AUR, pentru a căuta în AUR, ...

# 11 26/07/2011 11:56:21 AM

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Ei bine, puteți face orice cu aproape orice limbă. Dar la un moment dat ajungi la punctul în care este mai confortabil să te împuști în picior.

# 12 26.07.2011 12:39:53

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Ei bine, puteți face orice cu aproape orice limbă. Dar la un moment dat ajungi la punctul în care este mai confortabil să te împuști în picior.

Am vrut deja să scriu așa ceva și să vin cu practicitate; că nu are întotdeauna sens să scrieți ceva pe care alții l-au scris deja, mai ales când efortul depășește în mod clar profitul; dar bineînțeles că funcționează și așa.

# 13 30.07.2011 13:15:51

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Deci, dacă doriți să cumpărați o carte, vă recomand o lucrare de referință. Aruncă o privire în jur și vei fi uimit de ceea ce se întâmplă la bash!
L-am cumpărat când am început cu Linux și chiar să știu unde să mă uit în sistem și mai ales cu ce! Dar am venit și din lumea Klickibunti și nu auzisem niciodată de DOS sau de un shell. Ultimul contact cu un limbaj de script a fost Basic de pe C16 .

Despre carte: Linux - Kurz & gut, costă 9,90 €

# 14 08/07/2011 22:21:19

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Deci, dacă doriți să cumpărați o carte, vă recomand o lucrare de referință. Aruncă o privire în jur și vei fi uimit de ceea ce se întâmplă la bash!
L-am cumpărat când am început cu Linux și chiar să știu unde să mă uit în sistem și mai ales cu ce! Dar am venit și din lumea Klickibunti și nu auzisem niciodată de DOS sau de un shell. Ultimul contact cu un limbaj de script a fost Basic de pe C16 .

Despre carte: Linux - Kurz & gut, costă 9,90 €

Sau ceva mai special, acest Bash - Kurz & Gut, de asemenea, 9,90 €

# 15 16.08.2011 19:20:48

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Hei,
Recomand cartea lui Jürgen Wolf „Shell Programming” de la Galileo Verlag. Eu însumi îl folosesc întotdeauna ca lucrare de referință atunci când este necesar.
În orice caz, are sens cel puțin să încercați în mod regulat diferite linii și conducte. Doar pentru a practica jongleria cu expresiile regulate (de care, din păcate, nu poți fugi). A învăța scripturi ca un „limbaj de programare real” nu este ceea ce aș sfătui să fac acum. Dacă este necesar, ar fi mai bine să copiați sau să adaptați câteva exemple de exemple pentru un anumit scop. De exemplu, folosesc un mini-script pe care l-am scris eu însuși pentru următoarea sarcină: Jocurile nou „achiziționate” ar trebui verificate pentru autenticitate comparând suma de verificare CRC32 dintr-o bază de date și, dacă are succes, redenumită automat în conformitate cu schema predefinită. Baza de date trebuie actualizată frecvent, iar formatul său trebuie convertit din html în csv.
Salut

# 16 17.08.2011 10:57:42

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

A învăța scripturi ca un „limbaj de programare real” nu este ceea ce aș recomanda să fac acum.

Găsesc un indiciu bun.
Să vedem în mod pragmatic: scripturile Shell nu sunt practic nimic mai mult decât (cum ar fi fișierele batch DOS la un moment dat) un șir de comenzi/programe diferite care urmează să fie pornite și procesate „dintr-o dată”.
Nimic adevărat.

În cazul în care „programarea”, adică partea logică, intră din nou în joc atunci când anumite procese trebuie efectuate numai în anumite condiții. Sau repetat până la anumite condiții sau de un anumit număr de ori.
Și veți vedea: aceste instrumente, astfel încât oamenii să poată controla (programa) procesul, sunt disponibile și în orice alt limbaj de programare. Ceea ce au toate în comun: trebuie să înțeleg, să înțeleg, să abstractizez o sarcină și să o aduc într-o secvență logică. pentru aceasta folosesc lucruri precum decizii (dacă/altfel), bucle, funcții. Ceva de genul acesta poate fi formulat destul de abstract fără ajutorul unui „limbaj” concret.
Când îl veți implementa, veți observa mai târziu: Dacă am însușit această artă a problemei -> modului -> soluției, atunci trebuie doar să mă uit la sintaxa limbajului care urmează să fie folosit. Știu că fiecare limbă oferă ceva de genul „decizie” și știu cum „decizia” mă ajută cu pasul concret. Deci, trebuie doar să mă uit la sintaxa: cum o fac cu XYZ.
Și vei învăța să apreciezi avantajele unei limbi față de alta, vei putea spune: Ah, pentru acest proiect de ex. Ruby este mai potrivit decât atunci când încerc asta cu script bash shell.

Scripturile Shell sunt cele mai potrivite pentru începutul IMHO atunci când este nevoie de mici „ajutoare”.
Să presupunem că trebuie să mă uit la un anumit fișier jurnal în fiecare zi pentru a vedea: a) Sa întâmplat ceva specific (intrare) și ce valoare are în el.
Până acum am făcut acest lucru cu nano-> Deschidere-> Citire prin sau Căutare-> Fă ceva/nu face ceva când se găsește ceea ce vrei.
Ceva de genul acesta este minunat să fie „scriptat”.

Și citire: scripturile Shell sunt destul de ușor de citit (deoarece sunt adesea scurte și sunt destinate doar unei sarcini mici). De exemplu. /etc/rc.d/startskipte. Sau rc.sysinit.
Pentru a vedea: "Cum au făcut-o?" și construcții pe care nu le înțelegeți imediat, căutați online sau într-o carte, că IMHO contribuie semnificativ la „învățarea unui limbaj de scriptare” în special și la „învățarea programării” în general.

Eu însumi sunt doar un „programator” destul de nenorocit căruia îi place Ruby;-) și am creat toate programele „terminate” mai ales din lene. De multe ori încep ceva care nu este terminat niciodată (pentru că nu este nevoie necesară). Cu toate acestea, învăț ceva nou de fiecare dată; și, totuși, trebuie să căut sintaxa mult prea des (memorie proastă). Dar după câțiva ani știu întotdeauna * ce * să caut.;-)

# 17 08.08.2011 04:04:50

Re: Învățarea scripturilor shell (bash) are sens ca începător Linux?

Bash-ul este deosebit de răcoros atunci când căutați ceva. De exemplu, dacă aveți un folder cu o mulțime de fișiere diferite și doriți să mutați toate fișierele mp3 într-un alt folder, acest lucru vă poate costa mult timp. Pe bash, pe de altă parte, apelați comanda