Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Nie si prihlásený.

# 1 25. 7. 2011 14:10:07
Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
S Arch Linuxom pracujem už pár mesiacov a veľmi sa mi páči, ale zatiaľ som s bashom nemal veľa práce.
Na inom fóre som povedal, že som prešiel na Linux (jeden z mnohých dôvodov), pretože chcem ovládať svoj operačný systém a nie naopak.
Potom mi niekto napísal, že by som mal vedieť správne ovládať shell scripting (bash).
Vyvstáva mi však otázka, či má ako začiatočník systému Linux zmysel učiť sa skriptovanie v prostredí shell, ak ešte veľa nevie o samotnom systéme?
Zatiaľ viem iba to, že bash je to isté ako dávkové vo Windows, iba výkonnejšie a vo Windows som ho používal iba na to, aby som dokázal spustiť niekoľko programov súčasne alebo pre iné divoké veci.
Čo konkrétne môžete ešte dosiahnuť pomocou bash?
Aké sú výhody dobrého zvládnutia bash v porovnaní s ľuďmi, ktorí to vôbec nezvládajú?
Ako alternatívu niekto navrhol, že by ste mali byť schopní robiť Python, pretože s ním môžete robiť to isté. Je to správne?
Pretože som sa chcel dlho učiť Python, bol by to ten pravý čas (kvôli dobrým praktickým príkladom), ale ak to s Pythonom nefunguje, mám v úmysle kúpiť si nasledujúcu knihu:
Pretože je to veľmi drahé, najskôr by som sa s vami chcel uistiť, či ide o rozumnú investíciu, aby som vôbec mohol dosiahnuť svoje ciele, alebo či by som nemal ísť optimálnejšou cestou?
Som veľmi vďačný za vašu pomoc.
# 2 25. 7. 2011 14:27:50
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Po prvé: aj tak by ste sa skôr alebo neskôr mali naučiť bash (alebo iný shell skriptovací jazyk ako zsh alebo tcsh). Toto je takpovediac základná štruktúra. Naučiť sa skriptové jazyky nie je v skutočnosti také ťažké a môžu vás zbaviť veľa manuálnej práce. Okrem toho teraz existuje Windows pod Windows, ktorý napravuje tento nedostatok. ani s úplne grafickým operačným systémom sa nedá obísť základ. Ak veríte správcom Windows, Powershell je ešte lepší/rozsiahlejší/pohodlnejší ako napríklad Bash.
S Bash teoreticky dosiahnete čokoľvek, pretože jazyk sa považuje za Turingov úplný. Určite však nechcete robiť všetko s skriptovacím jazykom. Ale základné úlohy, ako je logika spustenia programu alebo podobne, sa dajú ľahko implementovať. Aj keď chcete spustiť iba niekoľko programov súčasne, zabalíte ich do shell skriptu.
Spočiatku nemôžem povedať nič o knihe samotnej, ale nemyslím si, že knihy Galileo sú spočiatku zlé. Spravidla sú dosť povrchné (osobný názor), ale vhodné aj pre začiatočníkov. Ale existuje viac ako dosť voľných zdrojov cez bash (mimochodom aj Python). Stačí použiť vyhľadávač podľa vášho výberu a mať radosť. A uč sa bash
# 3 25. 7. 2011 14:38:48
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Určite: Naučte sa bash (základy)!
Na to si nemusíte kupovať knihu. Zdroje na internete sú bohaté, nemusíte nevyhnutne potrebovať hlboké znalosti, ale základné informácie sú veľmi užitočné. Za normálnych okolností sa to naučíte robiť za behu: Kedykoľvek potrebujete bash, vyhľadajte možnosti a príkazy a potom začnite programovať! ^^
Držím sa tiež idiotskej metódy: viem, čo sa v podstate deje, a keď to potrebujem, vyhľadám to (aj keď niektoré veci aj tak stuhnú); Medzitým som už vytvoril niekoľko desiatok skriptov na automatizáciu rôznych procesov, lineárnych aj interaktívnych.
Prepojil som nasledujúce dve stránky, ktoré veľa zmysluplne vysvetľujú a poskytujú aj príklady aplikácií:
http://www.bin-bash.de/index.php
http://linuxseiten.kg-it.de/index.php?i… sh_befehle
# 4 25. 7. 2011 16:14:22
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Ďakujem, SaThaRiel a deviant, za podrobné odpovede.
Veľmi ste mi pomohli.
Takže asi kúpim ten s knihou a prečítam si webové stránky, ktoré tu boli zverejnené.
Oblasť použitia mi zatiaľ nie je úplne jasná.
Niekto na fóre mi raz pomohol s bash skriptom, ktorý automaticky vytvorí pripojenie VPN, keď som pripojený k určitej sieti WLAN, a ktorý ma dosť presvedčil (v tom čase som ani len netušil, že niečo také môžete urobiť) alebo tento skript dispečera sa líši pre správcu siete?
@ deviant: Môžete uviesť niekoľko príkladov svojich desiatok skriptov?
Pretože ako pri WLAN, aj tu sú zaručene veci, o ktorých som ani len netušil, že sú možné.
# 5 25. 7. 2011 16:43:28
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Tiež by som vám odporučil, aby ste sa oboznámili s funkčnosťou mnohých malých nástrojov (awk, sed, grep, bz atď.). Môže vás odbremeniť od veľa práce a je veľmi praktická. Zvyšok času príde sám, ako už deviant napísal ^ ^
# 6 25. 7. 2011 16:43:59
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
# 7 25. 7. 2011 16:47:45 hod
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Najzrejmejšie z nich sú štartovacie skripty: Čo sa vykoná, keď sa prihlásim do systému Linux?
DE ponúkajú svoje vlastné možnosti, vrátane Openboxu a podobne, Compiz nerobí:
Spustím teda tento skript na začiatku, z ktorého je spustených niekoľko skriptov.
"winebinds" viaže niektoré priečinky, ktoré som presunul na iný oddiel prístupný pre všetky nainštalované systémy Linux v priečinku/home.
„wlan0ff“ je malý skript, ktorý som zverejnil aj na anglickej wiki. Kontroluje, či som pripojený k prístupovému bodu, a ak nenájdete ESSID, úplne vypne hardvér WLAN, aby sa šetrila energia.
V opačnom prípade ide o malé reťazce príkazov na vynulovanie a opätovné spustenie pripojenia pppoe, na odosielanie upozornení (napr. Keď je batéria takmer vybitá) alebo na odloženie vypnutia do konca všetkých sťahovaní:
(Poznámka: časť tohto skriptu je odniekiaľ požičaná a bola zahrnutá do môjho skriptu, sry, pre prípad, že by sa niekto cítil nepriradený ^ ^)
Rozmýšľal som nad priamym spôsobom čítania prenosu, ale skončil som pri tomto riešení.
Okrem toho som pre niekoľko hier vytvoril skripty, ktoré majú zlepšiť výkon zatvorením conky a easystroke, deaktiváciou touchpadu, zmenou klávesovej mapy a následným spustením hry (rovnako ako zrušenie týchto zmien po dokončení, conky a easystroke znova začať atď.
Len pre zábavu som napísal malý program, ktorý mení keymapu a poskytuje rôzne informácie - 100 riadkov, ktoré nerobia nič, čo by „setxkbmap“ neurobil. ale nudil som sa a sedel vo vlaku
Účelom takýchto skriptov je automatizovať príkazy, ktoré nechcete zakaždým zadávať ručne alebo na ktoré rýchlo zabudnete.
Edit: Veľmi užitočným použitím skriptov je cronjob, ktorý automaticky kontroluje aktualizácie a indikuje to pomocou Conky. Niekoľko rozumných prístupov, ktoré sa výrazne nelíšia, už bolo zverejnených tu na fóre.
Príspevok upravený deviantom (25.07.2011 17:07:29)
# 8 25. 7. 2011 19:04:21 hod
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
tu je príklad odo mňa. Skript sa používa na otvorenie môjho externého pevného disku šifrovaného pomocou LUKS a na jeho pripojenie alebo zatvorenie v určitom adresári. Napísal som to skôr, ako Thunar zvládne oddiely LUKS.
Príspevok upravil SiD (25.07.2011 19:06:01)
# 9 26. 7. 2011 4:18:51
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
. Pretože ako pri WLAN, aj tu sú zaručene veci, o ktorých som ani len netušil, že sú možné.
Môžete predpokladať, že je možné aj takmer všetko, čo má zmysel a nie je obmedzené iba na hardvérové slabiny. Ak je to potrebné, stačí sa opýtať
# 10 26. 7. 2011 9:40:32 hod
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Shell skripty sa dajú použiť aj na implementáciu „väčších“ vecí, napríklad aurget. Toto je program na inštaláciu programov z AUR, na prehľadávanie AUR, ...
# 11 26. 7. 2011 11:56:21
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Môžete robiť čokoľvek takmer v akomkoľvek jazyku. Ale v určitom okamihu sa dostanete do bodu, keď je pohodlnejšie streliť si do nohy.
# 12 26. 7. 2011 12:39:53
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Môžete robiť čokoľvek s takmer akýmkoľvek jazykom. Ale v určitom okamihu sa dostanete do bodu, keď je pohodlnejšie streliť si do nohy.
Už som chcel niečo také napísať a prísť s praktickosťou; že nie vždy má zmysel napísať niečo, čo už napísali iní, najmä keď úsilie zjavne prevyšuje zisk; ale samozrejme aj to tak funguje.
# 13 30. 7. 2011 13:15:51
Re: Má učenie shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Takže ak si chcete kúpiť knihu, odporúčam vám referenčnú prácu. Poobzerajte sa okolo seba a budete ohromení tým, čo sa deje na bash!
Kúpil som si ho, keď som začínal s Linuxom, a vôbec aby som vedel, kde v systéme hľadať a hlavne čo! Ale tiež som pochádzal zo sveta Klickibunti a nikdy som nepočul o DOSe alebo škrupine. Posledný kontakt so skriptovým jazykom bol Basic z C16 .
O knihe: Linux - Kurz & gut, stojí 9,90 €
# 14 8. 7. 2011 22:21:19
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Takže ak si chcete kúpiť knihu, odporúčam vám referenčnú prácu. Poobzerajte sa okolo seba a budete ohromení tým, čo sa deje na bash!
Kúpil som si ho, keď som začínal s Linuxom, a vôbec aby som vedel, kde v systéme hľadať a hlavne čo! Ale tiež som pochádzal zo sveta Klickibunti a nikdy som nepočul o DOSe alebo škrupine. Posledný kontakt so skriptovým jazykom bol Basic z C16 .
O knihe: Linux - Kurz & gut, stojí 9,90 €
Alebo niečo zvláštnejšie, tento Bash - Kurz & Gut, tiež 9,90 €
# 15 16. 8. 2011 19:20:48
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Ahoj,
Odporúčam knihu Jürgena Wolfa „Programovanie škrupiny“ od Galileo Verlaga. Ja sám to vždy v prípade potreby použijem ako referenčnú prácu.
V každom prípade má zmysel aspoň pravidelne skúšať rôzne jednoradové vložky a potrubie. Keby len nacvičili žonglovanie s regulárnymi výrazmi (pred ktorými bohužiaľ nemôžete utiecť). Teraz by som sa radil robiť skriptovanie ako „skutočný programovací jazyk“. Ak je to potrebné, bolo by lepšie skopírovať alebo prispôsobiť niekoľko vzorových príkladov na konkrétny účel. Napríklad používam miniskript, ktorý som si sám napísal: Databáza musí byť aktualizovaná častejšie a jej formát musí byť prevedený z html do csv.
Pozdravujem vás
# 16 17. 8. 2011 10:57:42
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Teraz by som sa radil robiť skriptovanie ako „skutočný programovací jazyk“.
Nachádzam dobrý náznak.
Pozrime sa na to pragmaticky: Shell skripty nie sú v podstate nič iné ako (ako dávkové súbory systému DOS naraz) reťazec rôznych príkazov/programov, ktoré sa majú spustiť a spracovať „naraz“.
Naozaj nič.
Tu vstupuje do hry „programovanie“, t. J. Logická časť, keď sa určité procesy majú vykonávať iba za určitých podmienok. Alebo opakované až do určitých podmienok alebo určitý počet opakovaní.
A uvidíte: tieto nástroje, aby ľudia mohli proces vôbec ovládať (programovať), sú k dispozícii aj v každom inom programovacom jazyku. Všetky majú spoločné: Musím uchopiť úlohu, pochopiť ju, abstrahovať ju a uviesť do logického sledu. na toto používam veci ako rozhodnutia (ak/iné), slučky, funkcie. Niečo také sa dá formulovať celkom abstraktne bez pomoci konkrétneho „jazyka“.
Pri jeho implementácii si všimnete neskôr: Ak som si osvojil toto umenie riešenia problémov-> cesta-> riešenie, stačí mi pozrieť sa iba na syntax použitého jazyka. Viem, že každý jazyk ponúka niečo ako „rozhodnutie“ a viem, ako mi „rozhodnutie“ pomáha pri konkrétnom kroku. Musím sa teda pozrieť na syntax: Ako to robia s XYZ.
A naučíte sa oceňovať výhody jedného jazyka oproti druhému, budete môcť povedať: Ah, napríklad Ruby je pre tento projekt vhodnejšia, ako keď to skúšam pomocou skriptu Bash shell.
Shell skripty sú najvhodnejšie pre začínajúcich IMHO, keď sú potrební malí „pomocníci“.
Predpokladajme, že si každý deň musím pozrieť konkrétny súbor denníka, aby som videl: a) Stalo sa niečo konkrétne (záznam) a aká je tam hodnota.
Zatiaľ som to urobil pomocou nano-> Otvoriť-> Prečítať alebo Hľadať-> Urobiť niečo/neurobiť niečo, keď sa nájde to, čo chceš.
Niečo také úžasné je „nechať sa skriptovať“.
A čítanie: Shell skripty sa dajú čítať celkom ľahko (pretože sú často krátke a sú určené iba na malú úlohu). Napríklad /etc/rc.d/startskipte. Alebo rc.sysinit.
Vidieť: „Ako to dokázali?“ a konštrukty, ktorým ihneď nerozumiete, vyhľadajte online alebo v knihe, ktoré IMHO výrazne prispieva najmä k „osvojeniu skriptovacieho jazyka“ a všeobecne k „učeniu sa programovania“.
Ja sám som len dosť mizerný „programátor“, ktorý má rád Ruby;-) a všetky „hotové“ programy som tvoril väčšinou len z čírej lenivosti. Často iba začnem s niečím, čo nikdy nie je hotové (pretože to nie je potrebné). Napriek tomu sa vždy dozviem niečo nové; a napriek tomu musím príliš často vyhľadávať syntax (zlá pamäť). Ale po niekoľkých rokoch vždy viem, * čo * mám hľadať.;-)
# 17 10. 8. 2011 4:04:50
Re: Má štúdium shell scriptingu (bash) zmysel ako začiatočník Linuxu?
Bash je obzvlášť fajn, keď niečo hľadáte. Napríklad, ak máte priečinok s množstvom rôznych súborov a chcete presunúť všetky súbory mp3 do iného priečinka, môže vás to stáť veľa času. Na druhej strane s bashom poviete príkaz