Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Bash, Bourne Again SHell, e un shell gratuit creat pentru proiectul GNU. A ajuns foarte vestit pentru ca majoritatea distributiilor Linux il folosesc ca shell default pus la dispozitia utilizatorilor. Bineinteles, ca orice aplicatie cu vechime folosita de un numar mare de utilizatori, a ajuns sa fie un shell complex care ne permite sa il personalizam dupa bunul plac crescand astfel productivitatea.

Pentru personalizare bash foloseste fisierul „.bashrc„, fisier care e executat de bash la initializare pentru orice rulare interactiva (adica nu se executa si in cazul scripturilor). Daca ne intereseaza sa cream un anumit mediu de functionare sau sa setam unele variabile de mediu sau limitari in utilizare aici este locul in care trebuie sa faem modificari.

Sa luam de exemplu limitarea utilizatorului care a deschis o sesiune bash interactiva. De exemplu daca suntem pe un sistem desktop nu ne intereseaza sa facem debuging iar coredump il putem face de 0 blocuri. Pentru asta vom adauga in fisierul „.bashrc” urmatoarea linie:

ulimit -c 0

Bineinteles, putem adauga oricate limitari dorim folosind comanda ulimit. Lista limitarilor disponibile, in functie de sistem, poate fi afisata de comanda „ulimit -a„.

Tot aici putem seta diferite optiuni folosind comanda „set„. Putem, de exemplu, sa activam optiunea de pastrare a istoricului comenzilor rulate ruland in fisierul „.bashrc” comanda „set -o history” sau putem determina shellul sa nu se inchida cand se foloseste combinatia de taste CTRL+D ruland in fisierul „.bashrc” comanda „set -o ignoreeof„. Pentru asta vom adauga cele doua comenzi pe linii distincte:

set -o history
set -o ignoreeof

Pentru a va face o idee despre ce se poate seta cu comanda „set” puteti sa aruncati o privire pe pagina proiectului GNU The Set Builtin.

Pentru a determina modul in care bash se comporta in diferite situatii putem folosi comanda „shopt” cu ajutorul careia activam sau dezactivam diferite optiuni ale shellului. De exemplu putem determina shellul sa corecteze erorile minore in cazul in care scriem gresit numele directorului in care vrem sa intram folosind comanda „cd„, adaugand in fisierul „.bashrc” linia:

shopt -s cdspell

O lista completa de optiuni care poti fi setate cu ajutorul comenzii „shopt” poate fi gasita, ca in cazul anterior, pe pagina proiectului GNU The Shopt Builtin.

Pe langa optiuni putem seta diferite variabile folosind comanda „export„. Cu ajutorul comenzii „export” putem seta variabilele de mediu care determina promptul afisat, editorul de text preferat, aplicatia preferata de paginare etc. De exemplu, pentru a seta un prompt de forma „[[email protected]]$ „, pentru a seta „vi” ca editor preferat si „less” ca aplicatie pentru paginare vom adauga in fisierul „.bashrc” urmatoarele trei linii:

export PS1='[`echo $USER`@`hostname`]$ '
export EDITOR=vi
export PAGER=less

Tot in fisierul „.bashrc” putem crea si aliasuri pentru diferite comenzi complexe. De exemplu putem crea un alias cu numele „ll” pentru comanda „ls -al„, un alias „la” pentru comanda „ls -A” sau putem crea un alias care sa adauge un anumit parametru la fiecare rulare a unei comenzi, cum ar fi rularea comenzii „grep –color=auto” de fiecare data cand se ruleaza comanda „grep„. Pentru toate astea vom adauga in fisierul „.bashrc” urmatoarele trei linii:

alias ll='ls -al'
alias la='ls -A'
alias grep='grep --color=auto'

O alta facilitate draguta a shellului bash este creare de functii in cadrul fisierului „.bashrc„. Daca avem mai multe comenzi de rulat intr-o anumita situatie sau daca avem de rulat o comanda mai complexa putem crea o functie care sa faca totul pentru noi. De exemplu, putem crea o functie/comanda cu numele „lf” care de fiecare data cand este rulata si primeste ca parametru un numar, va verifica lista de fisiere deschise din directorul „/home” de procesul cu PID-ul trimis ca parametru:

function lf()
{
    lsof -p $1 | grep home
}

Exemplul de mai sus e unul simplu (si util) care il puteti folosi ca punct de pornire pentru crearea propriilor functii care sa faca procesari complexe ale datelor.

Sunt multe moduri in care bash poate fi personalizat pentru a corespunde stilului nostru de lucru sau pentru a ne creste productivitatea. Pentru a afla mai multe despre bash va recomand sa cititi Bash Reference Manual, pus la dispozitie de proiectul GNU.

Linux

7 Responses so far.

  1. Viorel says:

    Multumesc foarte mult pentru toate tutorialele pe care le-ai facut, sunt foarte folositoare pentru mine, pentru ca ma aflu la inceput de cale in linux.
    Referitor la acest tutorial am o intrebare. Poti sa imi arati cum sa maresc fontul din linia de comanda? Am instalat OpenSuse 11.1.
    Viorel

  2. Sergiu says:

    Ma bucur ca-ti sunt de folos 😉

    Referitor la font, vrei sa modifici interfata text? Sau folosesti Konsole sau o alta aplicatie din mediul grafic? Daca da, care?

  3. Viorel says:

    Multumesc de raspuns.
    Vreau sa maresc textul in terminal, el are butonul care mareste textul, dar este valabil numai pentru sesiunea curenta. Vreau ceva care dupa fiecare restart marimea textului din consola sa ramana acelasi. Folosesc GNOME Terminal 2.24.1.1.

    Si mai am o intrebare. Vreau sa instalez tracker pe un calculator, am incercat si am instalat XAMPP si parca merge bine, insa nu stiu cum sa il configurez ca sa pornesc si trackerul. trackerul este free l-am luat de pe net. Ai putea sa imi dai niste idei? Am cautat pe net cum sa instalez insa tare putina informatie. Mai mult vreau sa ma invat decat pentru alt interes…
    Iti sunt recunoscator pentru tot ce faci…
    Am vazut ca ai realizat ceva nou, ma pun sa citesc.

  4. Sergiu says:

    Ca sa maresti permanent fontul trebuie sa modifici profilul terminalului. Am facut un filmulet de cateva secunde pentru asta: http://www.youtube.com/watch?v=i7Wuw_2721U

    Referitor la torrent deschide un topic pe forum si vedem ce se poate face. Nu am mai instalat trackere, dar daca imi spui ce vrei sa instalezi ii dam de cap 🙂

  5. Viorel says:

    Mda, Sergiu… multumesc mult, e simplu cand stii…

  6. Viorel says:

    Incerc sa accesez link-ul pe forum si ma arunca pe adresa http://www.nethelp.ro/server-side.html dar nu functioneaza, ceva eu nu inteleg sau nu functioneaza link-ul?
    oricum multumesc

  7. Sergiu says:

    A fost o mica greseala de-a mea. Incearca acum 🙂