Nikto Posted February 2, 2010 Report Posted February 2, 2010 Salutare membrii ai comunitatii RST! Am decis sa realizez un tutorial despre bash. Lectiile vor fi postate in acest topic.1. IntroducereDescriere:Bash este un shell (interpretor de comenzi) specific sistemului de operare Linux, conceput sub auspiciile GNU. Denumirea este un acronim de la Bourne-Again Shell, dupa numele lui Steve Bourne, autorul shell-ului sh pentru UNIX, predecesorul bash-ului. Pentru sistemele de operare Linux, shell-ul implicit este bash.a) Informatii suplimentare:Pentru a crea programe in bash, este necesar sa dispuneti de un interpretor de comenzi (exemplu: Terminal) si de un text editor (exemplu: vi, mcedit, nano, gedit).Prima linie de cod in script-urile bash, este: #!/bin/bash. Aceasta linie comunica sistemului de operare ce shell utilizam.Comentariile in bash se fac utilizand caracterul urmator: #.Script-urile bash au terminatia .sh.Pentru a compila, rulam urmatoarele comenzi in consola:cd ~/Director-ul unde se afla script-ul-cd=change directorybash script.shDaca doriti sa il faceti executabil:chmod +x script.sh-chmod=change mod Primul exemplu#!/bin/bashclear[B]#comanda clear sterge continutul ecranului cand rulezi programul[/B]echo "Hello world!"[B]#echo este o comanda ce afiseaza un text[/B]Nota: Script-ul trebuie compilat!Urmatoarea lectie: Variabile.Astept comentarii (sugestii, critici). Quote
Xakepatop Posted February 2, 2010 Report Posted February 2, 2010 Foarte sintetic dar pentru încep?tori va fi cu siguran?? o comoar?. Complimente pentru ini?iativ? ?i a?tept cu ner?bdare urm?torul episod.Apropo despre tutoriale bash, v? propun unul pe care îl ?in mereu sub mîn?: Advanced Bash-Scripting GuideIar tu Nikto dac? te apuci s? traduci în român? acest tutorial, vei deveni cu siguran?? "Kto-to" P.S. Nu uita s? m? anun?i cînd faci partea II-a. Quote
vizitatoru123 Posted February 2, 2010 Report Posted February 2, 2010 Basic stuff dar fara ele nu sti nimic gg pentru tutorial asteptam mai multe ... Quote
Krisler12 Posted February 3, 2010 Report Posted February 3, 2010 Doar o mica intrebare:chmod +X fisier.shil face executabildarchmod +X 755 fisier.sh => aici ce se mai intampla ? Mai exista si alte numere in afara de 755 care se pot folosi ? Daca da, cu ce scop ?Multumesc ! Quote
Xakepatop Posted February 3, 2010 Report Posted February 3, 2010 În primul rînd, Krisler12, instruc?iunea ta este gre?it formulat? deoarece +X prime?te imediat dup? numele unui fi?ier pe care il face executabil.deci posibil ca tu vrei sa afli ce face: chmod 755 file.sh755 in cazul nostru se traduce în felul urm?tor: prima cifr? 7 ne indic? c? PROPRIETARUL fileului poate citi, modifica ?i executa acest fi?ier.a doua cifr? 5 - utilizatorii ce fac parte din grupul carei îi apar?ine fi?ierul pot citi ?i executa.a treia cifr? 5 - RESTUL utilizatorilor pot citi ?i executa.De unde am dedus asta? Din cîteva reguli simple care stau la baza sistemului de permisiuni UNIX ?i anume:Fiecare din aceste cifre este compus din urm?toarele trei: 4(citi), 2(modifica) ?i 1(executa) dar ?i combina?iile între ele sumînd valoarea lor. Exemplu: 6 = 4 + 2 deci se poate citi ?i modifica dar nu executa.Exist? ?i o metod? prin care po?i modifica permisiile cu ajutorul literelor dar cred ca o dat? în?eleas? aceasta, nu mai ai nevoie de nimic. Oricum te poti informa mai mult aici: Linux Files and File Permissions Quote
Nikto Posted February 3, 2010 Author Report Posted February 3, 2010 @Xakepatop: Advanced Bash Guide nu este tutorial, este c?r?oi in toata regula. Am descarcat acum 2 ani ghid-ul ala in calculator, daca m-ai uit ceva, dau search. Cei drept, acum 2 ani avea mult mai putine pagini. Tutorial-ul meu vrea sa fie un ghid practic pentru incepatori.@sickness: De unde deduci tu ca nu stiu nimic inafara de basic stuff? Nu trage concluzii pripite.2. Variabilea) IntroducereIn bash, exista 2 tipuri de variabile: definite de utilizator (acestea sunt scrise cu litere mici) si variabilele sistemului (scrise cu majuscule). UtilizarePentru a vizualiza o lista cu toate variabilele sistemului, rulati in consola comanda:setExemple de variabile de sistem:#!/bin/bashclearecho $USERecho $HOMEOutput:adrian/home/adrianDupa cum probabil observati, ne-au fost afisate contul cu care suntem autentificati.Exemplu de variabila definita de utilizator:#!/bin/bashclearvarsta=8nume=adrian#am definit variabileleecho "Salut $nume, stiu ca ai $varsta ani!"Output:Salut adrian, stiu ca ai 8 ani!Nota: Cand folosim variabilele, caracterul $ trebuie sa fie in fata lor!c) Informatii suplimentareUrmatoarele atriburi nu sunt corecte:numar =10numar= 10numar = 10Forma corecta este:numar=10In bash, variabilele sunt case-sensitive. Urmatorele variabile nu sunt identice, ci diferite:nr=10Nr=10nR=10Urmatoarea lectie: Declaratie de citire (va fi o lectie scurta).Astept parerile voastre. Spor la programare! Quote
Flubber Posted February 3, 2010 Report Posted February 3, 2010 yummy,gustos! tine-o tot asa si la mai multe lectii :-] Quote
vizitatoru123 Posted February 3, 2010 Report Posted February 3, 2010 Nikto, nu am zis ca sti numai basic stuff. Am spus ca ce ai postat e basic. Quote
Nikto Posted February 3, 2010 Author Report Posted February 3, 2010 ^Ok, scuze pentru neintelegere. Quote
pyth0n3 Posted February 3, 2010 Report Posted February 3, 2010 În primul rînd, Krisler12, instruc?iunea ta este gre?it formulat? deoarece +X prime?te imediat dup? numele unui fi?ier pe care il face executabil.deci posibil ca tu vrei sa afli ce face: chmod 755 file.sh755 in cazul nostru se traduce în felul urm?tor: prima cifr? 7 ne indic? c? PROPRIETARUL fileului poate citi, modifica ?i executa acest fi?ier.a doua cifr? 5 - utilizatorii ce fac parte din grupul carei îi apar?ine fi?ierul pot citi ?i executa.a treia cifr? 5 - RESTUL utilizatorilor pot citi ?i executa.De unde am dedus asta? Din cîteva reguli simple care stau la baza sistemului de permisiuni UNIX ?i anume:Fiecare din aceste cifre este compus din urm?toarele trei: 4(citi), 2(modifica) ?i 1(executa) dar ?i combina?iile între ele sumînd valoarea lor. Exemplu: 6 = 4 + 2 deci se poate citi ?i modifica dar nu executa.Exist? ?i o metod? prin care po?i modifica permisiile cu ajutorul literelor dar cred ca o dat? în?eleas? aceasta, nu mai ai nevoie de nimic. Oricum te poti informa mai mult aici: Linux Files and File PermissionsVroiam doar sa mai dau cateva exemple :chmod 400 -user-ul poate citi , nimeni altul nu poate face nimicchmod 644 -toti pot sa citeasca , proprietarul poate face editchmod 660 -proprietarul si grupul pot sa citeasca si sa editeze , world (altii) nu pot face nimicchmod 700 -proprietarul poate sa citesca sa scrie si sa execute restul nu pot sa faca nimicchmod 774 -toti pot sa citeasca doar proprietarul poate sa modifice si sa execute chmod 775 -toti pot sa citeasca si sa execute , doar proprietarul poate modifica chmod 777 -toti pot face orice (nu cred ca e bine )erele Autorizatii folosind numerele vizualizate de comandul ls -l0 ---1 --x2 -w-3 -wx4 r--5 r-x6 rw-7 rwxIn orice caz autorizatiile pot fi folosite in mod numeric sau in mod alfabetic depinde cum sunteti obijnuiti Pt modul alfabetic exempluleste urmatorul :chmod [ugo] [+-=][rwx]ugo = user , group , others un simplu exemplu chmod go+r example.sh example.sh va putea fi citit de catre group si others Quote
Xakepatop Posted February 4, 2010 Report Posted February 4, 2010 Vroiam doar sa mai dau cateva exemple :chmod 400 -user-ul poate citi , nimeni altul nu poate face nimic...Ai aruncat pu?in cement peste ceea ce am scris eu, î?i multumesc. Sper s? se înt?reasc? în min?ile cuiva ceea ce am scris noi aici. Quote
pyth0n3 Posted February 12, 2010 Report Posted February 12, 2010 An A-Z Index of the Bash command line for Linux bash commands - Linux MAN Pages Quote
Adonis Posted February 13, 2010 Report Posted February 13, 2010 (edited) Bash se poate folosi doar pe linux ? Edited February 13, 2010 by Adonis Quote
pyth0n3 Posted February 13, 2010 Report Posted February 13, 2010 Bash se poate folosi doar pe linux ?Doar in sistemele Unix/Linux , cred ca poti folosi si cateva comenzi in Cygwin , care ar fi un emulator de Unix shell pt Windows http://en.wikipedia.org/wiki/Cygwin In orice caz BASH este pt Unix/Linux Quote