Jump to content
Nikto

[bash] Tutorial

Recommended Posts

Posted

Salutare membrii ai comunitatii RST! Am decis sa realizez un tutorial despre bash. Lectiile vor fi postate in acest topic.

1. Introducere

Descriere:

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 directory

    bash script.sh


    Daca doriti sa il faceti executabil:

    chmod +x script.sh


    -chmod=change mod

B) Primul exemplu

#!/bin/bash
clear
[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).

Posted

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 Guide

Iar 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.

Posted

Doar o mica intrebare:

chmod +X fisier.sh

il face executabil

dar

chmod +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 !

Posted

Î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.sh

755 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

Posted

@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. Variabile

a) Introducere

In bash, exista 2 tipuri de variabile: definite de utilizator (acestea sunt scrise cu litere mici) si variabilele sistemului (scrise cu majuscule).

B)Utilizare

Pentru a vizualiza o lista cu toate variabilele sistemului, rulati in consola comanda:

set

Exemple de variabile de sistem:

#!/bin/bash
clear
echo $USER
echo $HOME

Output:

adrian
/home/adrian

Dupa cum probabil observati, ne-au fost afisate contul cu care suntem autentificati.

Exemplu de variabila definita de utilizator:

#!/bin/bash
clear
varsta=8
nume=adrian
#am definit variabilele
echo "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 suplimentare

Urmatoarele atriburi nu sunt corecte:

numar =10
numar= 10
numar = 10

Forma corecta este:

numar=10

In bash, variabilele sunt case-sensitive. Urmatorele variabile nu sunt identice, ci diferite:

nr=10
Nr=10
nR=10

Urmatoarea lectie: Declaratie de citire (va fi o lectie scurta).

Astept parerile voastre. Spor la programare!

Posted
Î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.sh

755 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

Vroiam doar sa mai dau cateva exemple :

chmod 400 -user-ul poate citi , nimeni altul nu poate face nimic

chmod 644 -toti pot sa citeasca , proprietarul poate face edit

chmod 660 -proprietarul si grupul pot sa citeasca si sa editeze , world (altii) nu pot face nimic

chmod 700 -proprietarul poate sa citesca sa scrie si sa execute restul nu pot sa faca nimic

chmod 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 -l

0 ---

1 --x

2 -w-

3 -wx

4 r--

5 r-x

6 rw-

7 rwx

In 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

Posted
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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...