Twitter RSS

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 “[user@host]$ “, 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.

Popularity: 4% [?]

Comentarii pentru “Bash: Personalizarea liniei de comanda”

  • Viorel spune:

    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

  • Sergiu spune:

    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?

  • Viorel spune:

    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.

  • Sergiu spune:

    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 :)

  • Viorel spune:

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

  • Viorel spune:

    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

  • Sergiu spune:

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

Ai intrebari?

* Te rog sa postezi pe NetHelp orice intrebare care nu are legatura cu articolul.

Retele sociale
Reclamã
Sharing makes you cool!
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Retele
Tutoriale despre retele de calculatoare, configurarea interfetelor de retea si rutarea IP-urilor.
/retele-networking/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Web hosting
Articole despre serviciile de gazduire web, dedicate sau in regim shared.
/web-hosting/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
cpadmin.ro
ABCDomenii