duminică, 23 noiembrie 2025

Ubuntu 25.10 Questing Quokka

 Ubuntu 25.10 Linux este, probabil, cea mai populară și mai accesibilă distribuție de Linux pentru începători și utilizatori casnici din lume.


Dacă "The Linux Command Line" te învață cum să folosești sistemul și "The Debian Administrator's Handbook" te învață cum să administrezi sistemul, Ubuntu este sistemul în sine pe care majoritatea oamenilor aleg să îl folosească.

🐧 Ce este Ubuntu Linux?

Ubuntu este o distribuție Linux bazată pe Debian, creată și întreținută de compania Canonical.

🎯 Puncte Cheie:

  1. Ușor de Folosit (User-Friendly): Spre deosebire de alte distribuții, Ubuntu vine cu o interfață grafică modernă și intuitivă (numită GNOME, de obicei), fiind gata de utilizare imediat după instalare. Are toate aplicațiile esențiale preinstalate (browser, suita Office, player media).

  2. Bazat pe Debian: Ubuntu folosește același sistem puternic de management al pachetelor ca și Debian (APT/deb), dar cu cicluri de lansare mai frecvente și un software adesea mai nou.

  3. LTS (Long-Term Support): Versiunile lansate din doi în doi ani (ex: 22.04 LTS, 24.04 LTS) primesc actualizări de securitate și suport pe o perioadă lungă (de obicei 5 ani), fiind ideale pentru mediile de producție sau utilizatorii care caută stabilitate maximă.

  4. Comunitate Enormă: Datorită popularității sale, Ubuntu are o comunitate masivă de utilizatori. Aproape orice problemă întâmpini, o soluție se găsește rapid pe forumuri sau pe site-uri precum Stack Overflow.

  5. Utilizare Versatilă: Este folosit pentru:

    • Desktop: Alternativă la Windows sau macOS.

    • Server: O alegere dominantă în centrele de date și pentru cloud computing (versiunea Ubuntu Server).


Vrei să afli mai multe despre:

  1. Instalarea Ubuntu (Cum poți încerca fără să ștergi Windows-ul)?

  2. Diferența dintre Ubuntu și Debian (De ce ai alege unul în detrimentul celuilalt)?

  3. Comenzi specifice Ubuntu (snap, apt)?

sâmbătă, 22 noiembrie 2025

Carti despre Linux

Aceasta este o listă cu unele dintre cele mai bune cărți și resurse despre Linux care sunt disponibile legal și gratuit pe internet. Comunitatea Linux este renumită pentru cultura "Open Source", așa că autorii fac adesea aceste materiale disponibile sub licențe Creative Commons. Majoritatea sunt în limba engleză (limba oficială a IT-ului), dar sunt scrise clar și sunt standardul în industrie. 

***  Algoritmi si structuri de date ( Note de curs lb. romana)  pagini: 277

Rezumat:


Rezumat General: Algoritmi și Structuri de Date


Cursul/documentul tratează bazele informaticii și programării, concentrându-se pe cele două elemente esențiale necesare pentru a scrie programe eficiente: Algoritmi și Structuri de Date.

1. Algoritmi

Un algoritm este o succesiune finită de pași bine definiți și neambigui, care rezolvă o problemă specifică.

  • Subiecte Cheie:

    • Analiza Complexității: Evaluarea eficienței unui algoritm în funcție de timpul de execuție și spațiul de memorie necesar (de obicei, folosind notația Big O - $O(n)$).

    • Metode de Sortare: Algoritmi clasici pentru ordonarea datelor (ex: Bubble Sort, Insertion Sort, Merge Sort, Quick Sort).

    • Metode de Căutare: Algoritmi pentru localizarea unui element într-o colecție de date (ex: Căutare Secvențială, Căutare Binară).

    • Tehnici de Proiectare: Introducere în metodele de creare a algoritmilor (ex: Divide et Impera, Greedy, Programare Dinamică).

2. Structuri de Date

O structură de date este o modalitate particulară de organizare, gestionare și stocare a datelor, astfel încât acestea să poată fi accesate și modificate eficient.

  • Subiecte Cheie:

    • Structuri Liniare:

      • Tablouri (Arrays): Colecții de elemente de același tip, stocate în memorie adiacent.

      • Liste Înlănțuite (Linked Lists): Colecții de elemente (noduri) care conțin date și referințe la nodul următor.

      • Stive (Stacks): Structuri LIFO (Last-In, First-Out).

      • Cozi (Queues): Structuri FIFO (First-In, First-Out).

    • Structuri Arboricole:

      • Arbori Generali și Arbori Binari: Utilizați pentru a reprezenta relații ierarhice.

      • Arbori Binari de Căutare (BST): Arbori optimizați pentru căutare, inserare și ștergere rapidă.

Obiectivul principal al acestui domeniu este de a învăța cum să alegi structura de date potrivită pentru a utiliza cel mai eficient algoritm și a rezolva astfel o problemă de calcul în cel mai bun mod posibil.



 *  Pentru Începători (Must-Read)

The Linux Command Line de William Shotts De ce e bună: Aceasta este considerată "biblia" pentru oricine vrea să treacă de la interfața grafică la terminal. Te ia de la zero (ce este un shell) și te duce până la scripting de bază. Unde o găsești: Pe site-ul oficial LinuxCommand.org. Linux Fundamentals de Paul Cobbaut De ce e bună: Este structurat ca un curs. Este direct, fără multă "umplutură" narativă, perfect dacă vrei să înveți rapid comenzile și structura fișierelor. Unde o găsești: Pe diverse site-uri de arhivă sau direct căutând PDF-ul autorului (licență deschisă). 

 REZUMAT:

 Excelent! Ai găsit "Sfântul Graal" al începătorilor în Linux. Link-ul pe care l-ai pus este versiunea **24.11 (Noiembrie 2024)** a cărții **The Linux Command Line** de William Shotts. Faptul că este o versiune atât de recentă este un mare avantaj, deoarece informațiile sunt actualizate. Deoarece nu pot "citi" fișierul direct din link (fiind un PDF protejat la download), îți pot spune exact ce conține și cum să o abordezi, pentru că structura ei este legendară și o cunosc foarte bine. Iată o **hartă de navigare** a acestei cărți, ca să nu te sperie cele 500+ pagini: ### Partea 1: Learning The Shell (Baza) *Aici petreci primele 2-3 săptămâni.* * **Capitolele 1-4:** Înveți cum să "umbli" prin directoare (`cd`, `ls`) și cum să nu ștergi tot din greșeală (`cp`, `mv`, `rm`). * **Capitolul 6 (Redirection):** Aici se produce declicul. Înveți cum să iei rezultatul unei comenzi și să-l trimiți în alta folosind `|` (pipe) și `>` (redirect). Este esența puterii Linux. ### Partea 2: Configuration and the Environment *Pentru când te simți confortabil.* * Înveți ce sunt acele fișiere cu punct din "Home" (ex: `.bashrc`) și cum să îți personalizezi terminalul (să-l faci colorat, să creezi scurtături/alias-uri). ### Partea 3: Common Tasks and Essential Tools *Aici devii "Power User".* * **Grep și Expresii Regulate:** Cum să cauți un ac în carul cu fân (text search avansat). * **Networking:** Comenzi de rețea. * **Instalare Software:** Cum funcționează compilarea programelor. ### Partea 4: Writing Shell Scripts *Nivelul Jedi.* * Ultima parte a cărții te învață practic programare. Cum să faci un fișier text care execută singur o serie de comenzi complexe (automatizare). ---Mă bucur să te ajut! Deoarece cartea are peste 500 de pagini, iată un rezumat concis al ideii centrale și al structurii principale din **The Linux Command Line (TLCL)** de William Shotts: ### 📖 Rezumat: The Linux Command Line (TLCL) Cartea **TLCL** servește ca un ghid complet, de la zero, pentru a stăpâni **interfața liniei de comandă (CLI)** din Linux, demonstrând că aceasta este mult mai eficientă și mai puternică decât interfețele grafice tradiționale. #### Ideea Centrală Scopul cărții nu este doar să te învețe o listă de comenzi, ci să te învețe să **gândești ca un sistem Linux**. Odată ce înțelegi cum comenzile simple pot fi combinate prin concepte precum **redirecționarea (redirection)** și **pipeline-urile (pipes)**, poți rezolva sarcini complexe cu o singură linie de text. #### Structura Principală a Cărții 1. **Fundamentele Shell-ului:** * Înveți navigarea de bază (cum să te miști prin directoare cu `cd` și cum să vezi ce este acolo cu `ls`). * Manipularea fișierelor și directoarelor (`cp`, `mv`, `rm`). * Sistemul de ajutor (cum să folosești `man` și `help`). 2. **Instrumente Esențiale:** * Explorarea puterii utilitarelor fundamentale (cum ar fi `cat`, `less`, `sort`). * Utilizarea filtrelor puternice precum **`grep`** pentru căutări avansate de text folosind expresii regulate. * Înțelegerea **permisiunilor** și a proprietarilor (cine are voie să citească, să scrie și să execute un fișier). 3. **Configurare și Mediul de Lucru:** * Personalizarea shell-ului (crearea de **alias-uri** și variabile de mediu). * Înțelegerea fișierelor de configurare a shell-ului, cum ar fi `.bashrc`. 4. **Scripting Bash (Partea Avansată):** * Această secțiune te transformă dintr-un utilizator în **programator de shell**. * Înveți cum să folosești variabile, structuri de control (`if/else`, `for/while loops`) și funcții pentru a automatiza sarcini repetitive și a crea propriile tale utilitare. **Pe scurt:** Cartea te ia de la un utilizator care abia știe să deschidă terminalul și te transformă într-un utilizator care poate crea programe puternice de automatizare doar folosind comenzi text. --- Vrei să începem cu un rezumat al primului capitol, despre **Navigarea în Sistemul de Fisiere**? **Cu ce vrei să începem?** Dacă vrei, îți pot explica rapid **cel mai important concept din primele capitole** (de exemplu: *permisiunile* sau *cum funcționează structura de directoare arborescentă*), ca să nu fii nevoit să citești teorie pură din start. 

 

 

 2. Pentru Administrare de Sistem (SysAdmin) The Debian Administrator's Handbook de Raphaël Hertzog și Roland Mas De ce e bună: Dacă folosești Debian, Ubuntu, Mint sau Kali, aceasta este cartea esențială. Explică cum funcționează sistemul de pachete (apt), cum se gestionează utilizatorii și rețeaua în sistemele bazate pe Debian. Unde o găsești: debian-handbook.info. Linux Advanced Routing & Traffic Control HOWTO De ce e bună: Dacă vrei să înțelegi cum funcționează rețelistica în Linux la un nivel profund (iproute2, traffic shaping), aceasta este resursa clasică. Unde o găsești: Pe TLDP.org. 

 Excelent! The Debian Administrator's Handbook (sau Manualul Administratorului Debian) este resursa standard pentru oricine lucrează cu sistemul de operare Debian sau derivatele sale (Ubuntu, Mint etc.).

Iată un rezumat al scopului și al structurii principale a acestui manual:

📖 Rezumat: The Debian Administrator's Handbook

Scopul Principal

Manualul este un ghid complet și esențial pentru instalarea, configurarea, întreținerea și securizarea unui sistem de operare bazat pe Debian GNU/Linux. Este scris pentru a transforma un utilizator obișnuit într-un administrator de sistem (SysAdmin) competent pe platforma Debian, punând accent pe cele mai bune practici și pe instrumentele specifice Debian.


Structura și Conținutul Cheie

Manualul este împărțit în secțiuni logice, acoperind întregul ciclu de viață al unui sistem:

1. Instalarea și Noțiunile de Bază

  • Instalarea: Ghidează cititorul prin procesul de instalare, configurarea inițială și primii pași după instalare.

  • Structura Sistemului: Explică structura de directoare standard a sistemului de fișiere Linux (de ce /etc, /var, /usr sunt importante).

  • Instrumente de Bază: Acoperă comenzile fundamentale și lucrul cu consola.

2. Inima Debian: Sistemul de Pachete

Aceasta este cea mai importantă secțiune. Debian este definit de sistemul său de pachete (software-uri).

  • Gestiunea pachetelor: Explică în detaliu cum funcționează APT (Advanced Package Tool), dpkg și cum să instalezi, să dezinstalezi, să actualizezi și să gestionezi software-ul în siguranță.

  • Upgrade-uri: Cum să treci la o versiune mai nouă de Debian (de exemplu, de la "Stable" la "Testing") fără a strica sistemul.

3. Administrarea Sistemului

  • Utilizatori și Grupuri: Managementul conturilor de utilizator, permisiunilor și privilegiilor (comanda sudo).

  • Procese și Jurnale: Cum să monitorizezi ce rulează pe sistem (procese) și cum să folosești jurnalele (logs) pentru a depana problemele.

  • Rețelistica: Configurarea interfețelor de rețea, DNS și instrumentele de diagnosticare a rețelei.

  • Nucleul (Kernel): Cum să gestionezi, să compilezi sau să personalizezi nucleul Linux.

4. Securitate și Servicii Avansate

  • Securitate: Securizarea mașinii, gestionarea firewall-ului (ex: iptables sau nftables) și politicile de securitate.

  • Servicii: Configurarea de servicii esențiale precum SSH (pentru acces la distanță), servere web (Apache, Nginx), e-mail și baze de date.

Pe scurt: Dacă vrei să devii un expert în Debian și să înțelegi de ce este considerat unul dintre cele mai stabile și mai sigure sisteme de operare, acest manual este planul tău de studiu.

3.
Scripting și Programare Advanced Bash-Scripting Guide (The Linux Documentation Project)
De ce e bună: Nu te lăsa păcălit de vârsta ei; este resursa supremă pentru bash scripting. Este plină de exemple, de la simple "Hello World" până la scripturi complexe. Unde o găsești: tldp.org/LDP/abs/html/. Pro Git de Scott Chacon și Ben Straub De ce e bună: Deși este despre Git, nu despre kernelul Linux, Git este un utilitar esențial creat de fondatorul Linux (Linus Torvalds). Orice utilizator serios de Linux trebuie să știe Git. Unde o găsești: git-scm.com/book. 

 

Grozav — vrei un ghid advanced pentru scripting în Bash. Am pus împreună o sinteză practică în română: ce să înveți, structura unui „Advanced Bash-Scripting Guide”, concepte-cheie, exemple avansate și un plan de învățare. Spune-mi dacă vrei variante mai lungi (capitol cu capitol), o traducere a unui ghid existent sau fișiere de tip slide/PDF.

Ce ar trebui să conțină un Advanced Bash-Scripting Guide

  • Introducere & bune practici

    • Shebang, permisiuni, portabilitate (POSIX vs bash), comentarii, documentare, testare.

  • Controlul fluxului & funcții

    • if/elif/else, case, for/while/until, funcții cu return și valori prin stdout.

  • Variabile & tipuri

    • expansii ($var, ${var:-default}, ${var#pattern}), quoting (, ", ''), variabile de mediu, read-only, export.

  • Expresii și testare

    • test / [ / [[ — diferențe, comparări numerice/string, regexp în [[ ]].

  • Arrays & associative arrays

    • indexare, iterație, lungime, declare -A pentru arrays asociative.

  • Input/Output & redirecționări

    • >, >>, 2>, &>, here-docs (<<) și here-strings (<<<), tee.

  • Substituție & Pipes

    • command substitution $(...), process substitution <(...) și >(...).

  • Job control & procese

    • background, foreground, jobs, wait, PID handling, nohup.

  • Trap & signal handling

    • trap 'handler' EXIT SIGINT SIGTERM pentru cleanup și robustețe.

  • Exec, eval și file descriptors avansați

    • exec pentru manipulare fd, redirecționări permanente.

  • Expresii regulate & manipulare text

    • sed, awk, grep (sfaturi pentru combinare eficientă).

  • Performanță & eficiență

    • evită subshell-uri inutile, preferă builtin-uri, streaming (procesare linie-cu-linie).

  • Debugging & testare

    • set -x, set -euo pipefail, trap '...' ERR, logare, unit tests cu bats.

  • Securitate

    • evită exec al input-ului nevalid, quote corespunzător, folosește mktemp pentru fișiere temporare.

  • Interacțiuni cu sisteme externe

    • API calls (curl/httpie), parsing JSON (jq), management fișiere, systemd timers/cron.

  • Cazuri avansate

    • coprocess (coproc), named pipes (FIFO), manipularea fișierelor mari, paralelizare cu xargs -P, & și wait.

  • Scripting portabil (POSIX)

    • care funcționalități sunt bash-only și cum scrii scripturi care rulează pe /bin/sh.

Exemple avansate scurte (utile imediat)

1. Trap + cleanup sigur

#!/usr/bin/env bash
set -euo pipefail
tmpfile=$(mktemp)
cleanup() {
  rm -f "$tmpfile"
  echo "Cleaned up."
}
trap cleanup EXIT INT TERM

# folosește $tmpfile
echo "data" > "$tmpfile"

2. Array asociativ + iterare

#!/usr/bin/env bash
declare -A info=( ["name"]="app" ["version"]="1.2.3" ["env"]="prod" )
for k in "${!info[@]}"; do
  printf "%s = %s\n" "$k" "${info[$k]}"
done

3. Process substitution (evită fișiere temporare)

diff <(sort fileA) <(sort fileB)

4. Paralelizare simplă cu xargs

find /data -type f -print0 | xargs -0 -n1 -P4 gzip

Cheat-sheet rapid (comenzi & setări)

  • set -euo pipefail — strictețe + fail-early.

  • [[ ... ]] — test extins (bash), suportă =~.

  • ${var:-default} ${var:=value} ${var##*/} — expansions utile.

  • mktemp — fișiere temporare sigure.

  • read -r — citește raw (fără backslash escapes).

  • exec > logfile 2>&1 — redirecționare globală.

Plan de învățare recomandat (4 săptămâni)

  • Săptămâna 1: recapitulare bash de bază + shebang, permisiuni, variabile, quoting.

  • Săptămâna 2: arrays, funcții, teste, set -euo pipefail, debugging.

  • Săptămâna 3: I/O avansat, process substitution, traps, cleanup, securitate.

  • Săptămâna 4: proiect practic (backup incremental, log rotation, wrapper pentru API), optimizare și unit tests cu bats.

Resurse și următorii pași

  • Vrei să-ți pregătesc:

    • un ebook/rezumat PDF al ghidului (capitol cu capitol),

    • un set de exerciții și soluții,

    • sau un curs pas-cu-pas cu exemple și fișiere test?
      Spune-mi ce preferi și îl pun imediat la cale.

 

 4. Pentru "Hardcore" Users (Deep Dive) Linux From Scratch (LFS) De ce e bună: Aceasta nu este o carte de "citit", ci un manual de proiect. Te învață cum să îți construiești propriul sistem de operare Linux, compilând codul sursă pachet cu pachet. Dacă termini cartea asta, vei ști mai mult despre Linux decât 99% dintre utilizatori. Unde o găsești: linuxfromscratch.org. Little Book of Semaphores de Allen B. Downey De ce e bună: Dacă te interesează cum funcționează sistemele de operare la nivel de procese și fire de execuție (threading), aceasta este o carte gratuită excelentă, deși mai teoretică. Unde o găsești: greenteapress.com. Sfat Pro: The Linux Documentation Project (TLDP) Dacă ai nevoie de ghiduri specifice (numite HOWTOs), site-ul tldp.org este o mină de aur, deși are un design foarte vechi. Acolo găsești documentație gratuită pentru aproape orice problemă specifică Linux. Vrei să te ajut să descarci una dintre ele sau să îți explic o comandă anume din ele?

CMUS - Muzica in terminal

CMUS: Ghidul Suprem pentru a asculta muzică ca un "Hacker" (sau un masochist digital)


Ești sătul de interfețe grafice prietenoase? Te enervează când Spotify îți sugerează playlist-uri "pentru relaxare" cu poze colorate? Simți că RAM-ul tău de 32GB este insultat de aplicații care consumă mai mult de 5MB?

Atunci cmus (C MUsic Player) este soluția la problemele pe care nu știai că le ai.

Cmus nu este doar un player de muzică; este o declarație de stil. Este modul tău de a spune lumii: "Da, folosesc Arch Linux (btw) și consider că mouse-ul este o unealtă pentru cei slabi de înger."

Experiența CMUS:

1. Prima întâlnire (Șocul și Groaza)

Deschizi terminalul. Scrii cmus. Apare un ecran negru cu text albastru și galben. Nu există buton de Play. Nu există bară de volum. Nu există coperta albumului. Ești doar tu și abisul digital. Încerci să dai click. Nu se întâmplă nimic. Cursorul mouse-ului tău plânge în colțul ecranului, nefolositor și abandonat.

2. Navigarea (Sindromul Stockholm VIM)

Pentru a folosi cmus, trebuie să uiți tot ce știi despre calculatoarele moderne. Vrei să mergi în jos? Apeși j. Vrei în sus? Apeși k. Vrei să adaugi muzică? Trebuie să intri în modul de comandă cu : și să scrii o incantație antică de genul :add ~/MuzicaMea/FolderulAscuns/ManeleVechi.

Dacă ai folosit vreodată vim și ai încercat disperat să ieși din el, te vei simți ca acasă în cmus.

3. Factorul "Cool" (Iluzia Hackerului)

Acesta este principalul motiv pentru care folosim cmus. Imaginează-ți scena: ești într-o cafenea, cu laptopul tău plin de stickere. Deschizi cmus. Pe ecran curg liste de fișiere într-o viteză amețitoare.

Cineva se uită peste umărul tău.

Ce văd ei: "Wow, tipul ăsta sparge mainframe-ul Pentagonului. Uite ce repede tastează cod!"

Ce faci tu de fapt: Încerci disperat să-ți amintești dacă tasta pentru "Shuffle" este s sau S, în timp ce asculți pe ascuns albumul "Best of ABBA".

4. Performanța (Viteza Luminii)

Cmus este atât de ușor încât ar putea rula probabil și pe un prăjitor de pâine inteligent. Consumă atât de puține resurse încât procesorul tău nici măcar nu se trezește din starea de veghe pentru a reda un FLAC de 100MB. Este definiția absolută a "anti-bloat".

Concluzie:

Să folosești cmus în 2024 este ca și cum ai insista să mergi la serviciu călare pe un cal în loc să iei metroul. E incomod, necesită antrenament și toată lumea se uită ciudat la tine. Dar hey, măcar arăți maiestuos în timp ce te chinui să schimbi melodia.


Acum, să generăm imaginea care surprinde perfect această "estetică".

Iată rezultatul, o combinație între textul umoristic și o imagine care surprinde perfect esența utilizatorului de cmus.


CMUS: Ghidul Suprem pentru a asculta muzică ca un "Hacker" (sau un masochist digital)

Ești sătul de interfețe grafice prietenoase? Te enervează când Spotify îți sugerează playlist-uri "pentru relaxare" cu poze colorate? Simți că RAM-ul tău de 32GB este insultat de aplicații moderne care consumă mai mult de 50MB?

Atunci cmus (C MUsic Player) este soluția la problemele pe care nu știai că le ai.

Cmus nu este doar un player de muzică; este o declarație de stil. Este modul tău de a spune lumii: "Da, folosesc Linux și consider că mouse-ul este o unealtă pentru cei slabi de înger."

Experiența CMUS în 4 Pași Simpli:

1. Prima întâlnire (Șocul și Groaza)

Deschizi terminalul. Scrii cmus. Apare un ecran negru cu text albastru și galben, care arată ca o bază de date din 1993. Nu există buton de Play. Nu există bară de volum. Nu există coperta albumului. Încerci să dai click. Nu se întâmplă nimic. Cursorul mouse-ului tău plânge în colțul ecranului, nefolositor și abandonat.

2. Navigarea (Sindromul Stockholm VIM)

Pentru a folosi cmus, trebuie să uiți tot ce știi despre calculatoarele moderne. Vrei să mergi în jos în listă? Apeși j. Vrei în sus? Apeși k. Vrei să adaugi muzică? Trebuie să intri în modul de comandă cu : și să scrii o incantație antică de genul :add ~/MuzicaMea/FolderulAscuns/ManeleVechi.

Dacă ai folosit vreodată vim și ai încercat disperat să ieși din el, te vei simți ca acasă în cmus. Dacă nu, pregătește-te să cauți pe Google "cum dau play în cmus" de pe telefon.

3. Factorul "Cool" (Marea Iluzie)

Acesta este principalul motiv pentru care folosim cmus. Imaginează-ți scena: ești într-o cafenea, cu laptopul tău plin de stickere dubioase. Deschizi cmus. Pe ecran curg liste de fișiere într-o viteză amețitoare.

  • Ce văd cei din jur: "Wow, tipul ăsta sparge mainframe-ul Pentagonului. Uite ce repede tastează cod verde pe fundal negru! E clar periculos."

  • Ce faci tu de fapt: Încerci disperat să-ți amintești dacă tasta pentru "Shuffle" este s sau S, în timp ce asculți pe ascuns albumul "Best of Celine Dion" și speri să nu ți se scoată căștile din mufă.

4. Performanța (Viteza Luminii)

Cmus este atât de ușor încât ar putea rula probabil și pe un cuptor cu microunde inteligent. Consumă atât de puține resurse încât procesorul tău nici măcar nu se trezește din starea de veghe pentru a reda un FLAC de 100MB. Este definiția absolută a "anti-bloat".

Concluzie:

Să folosești cmus în 2024 este ca și cum ai insista să mergi la serviciu călare pe un cal în loc să iei metroul. E incomod, necesită antrenament și toată lumea se uită ciudat la tine. Dar hey, măcar arăți maiestuos și "hardcore" în timp ce te chinui să schimbi melodia.


Imagine Edificatoare: "Hackerul" și Muzica Sa

Această imagine surprinde perfect momentul: un utilizator dedicat, într-un mediu de "cybersecurity" intens, folosind cmus pentru a asculta ceva complet neașteptat.


duminică, 16 iulie 2017

Crearea modulelor kernel in linux

           # Crearea modulelor kernel in linux.

## Ce este un modul kernel?
    Kernelul face legatura intre hardware si software. Kernelul este un program alcatuit din module si poate fi extins cu alte module. In urmatoarele randuri v-om scrie un modul kernel pe un sistem Fedora 24. Pentru acest lucru este nevoie de instalarea programului kernel-devel.

        sudo dnf install kernel-devel
``` C
/*
 * hello-1.c Cel mai simplu modul kernel.
 */
#include <linux/module.h>   /* Necesar in toate modulele */
#include <linux/kernel.h>   /* Necesar pt. KERN_INFO */

int init_module(void){

    printk(KERN_INFO "Hello world 1.\n");
    /*
     * Returnarea altei valori decat 0 inseamna ca modulul nu
     *  poate fi incarcat.
     */
    return 0;
}

void cleanup_module(void){
   
    printk(KERN_INFO "Goodby world 1.\n");
}
```
Trebuie creata fila Makefile:
```
obj-m += hello-1.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
```

Rularea programului se executa in directorul curent cu comanda:

        make

vineri, 14 iulie 2017

Utilizarea editorului de texte vi

 ## Ce este vi?

    Vi este un editor de texte folosit de catre profesionisti si care se gaseste pe majoritatea distributiilor Unix. Acum acesta este cunoscut si sub denumirea de VIM(Vi IMpruved). Este un editor multiplatforma ce poate fi utilizat pe sisteme Linux, Windows si Mac OS. Mai multe informatii puteti obtine de la adresa [http://www.vim.org/](http://www.vim.org/).

    Editorul vim are trei moduri de lucru: modul de inserare, utilizat prntru scrierea textului, modul de comanda, folosit pentru a "naviga" in cadrul textului, pentru a salva fisierul in curs de editare, pentru a marca blocuri de text etc. si modul numit ex, care se utilizeaza pentru functii aditionale, cum ar fi cautarea unui sir de caractere in cadrul textului.

    Programul vim porneste in modul comanda. Pentru a intra in modul inserare, se foloseste tasta "i" (Insert). Pentru intoarcerea in modul comanda, se apasa tasta "Esc"(Cancel). Tastele mai importante de navigare in cadrul textului( valabile in modul de comanda) sunt:
        h - un caracter la stanga;
        j - o linie in jos;
        k - o linie in sus;
        l - un caracter la dreapta;
        w - un cuvant inainte;
        b - un cuvant inapoi;
        $ - sfarsitul liniei;
        0 - inceputul liniei;
        G - inceputul buffer-ului;

    Alte comenzi importante sunt:
        x - sterge un caracter;
        d - sterge un obiect. Prin obiect se intelege un bloc de text, desemnat cu ajutorul comenzilor de navigare. Spre exemplu, comanda dw inseamna "sterge urmatorul cuvant";
        dd - sterge linia;
        D - sterge textul dintre cursor si sfarsitul liniei;
        u - reface ultima modificare adusa textului;

    Comenzile pentru iesirea din vim:
        :wq - salveaza fisierul inainte de iesire;
        :q  - iese din vim doar daca nu s-au facut modificari si nu au fost             salvate;
        :q! - iese din program chiar daca modificarile nu au fost salvate;

    Comenzile pentru salvarea fisierului sunt:
        :w - salveaza fisierul pe disc;
        :w fisier - salveaza buffer-ul in fisierul specificat.

    De altfel ca orice alt program despre vim se pot obtine mai multe informatii din pagina de manual cu comanda: man vim.

marți, 11 iulie 2017

Windows comenzile din terminal (cmd)

1. help -afiseaza comenzile disponibile in terminalul Windows.
C:\Users\>help
For more information on a specific command, type HELP command-name
ASSOC          Displays or modifies file extension associations.
ATTRIB         Displays or changes file attributes.
BREAK          Sets or clears extended CTRL+C checking.
BCDEDIT        Sets properties in boot database to control boot loading.
CACLS          Displays or modifies access control lists (ACLs) of files.
CALL           Calls one batch program from another.
CD             Displays the name of or changes the current directory.
CHCP           Displays or sets the active code page number.
CHDIR          Displays the name of or changes the current directory.
CHKDSK         Checks a disk and displays a status report.
CHKNTFS        Displays or modifies the checking of disk at boot time.
CLS            Clears the screen.
CMD            Starts a new instance of the Windows command interpreter.
COLOR          Sets the default console foreground and background colors.
COMP           Compares the contents of two files or sets of files.
COMPACT        Displays or alters the compression of files on NTFS partitions.
CONVERT        Converts FAT volumes to NTFS.  You cannot convert the
               current drive.
COPY           Copies one or more files to another location.
DATE           Displays or sets the date.
DEL            Deletes one or more files.
DIR            Displays a list of files and subdirectories in a directory.
DISKCOMP       Compares the contents of two floppy disks.
DISKCOPY       Copies the contents of one floppy disk to another.
DISKPART       Displays or configures Disk Partition properties.
DOSKEY         Edits command lines, recalls Windows commands, and
               creates macros.
DRIVERQUERY    Displays current device driver status and properties.
ECHO           Displays messages, or turns command echoing on or off.
ENDLOCAL       Ends localization of environment changes in a batch file.
ERASE          Deletes one or more files.
EXIT           Quits the CMD.EXE program (command interpreter).
FC             Compares two files or sets of files, and displays the
               differences between them.
FIND           Searches for a text string in a file or files.
FINDSTR        Searches for strings in files.
FOR            Runs a specified command for each file in a set of files.
FORMAT         Formats a disk for use with Windows.
FSUTIL         Displays or configures the file system properties.
FTYPE          Displays or modifies file types used in file extension
               associations.
GOTO           Directs the Windows command interpreter to a labeled line in
               a batch program.
GPRESULT       Displays Group Policy information for machine or user.
GRAFTABL       Enables Windows to display an extended character set in
               graphics mode.
HELP           Provides Help information for Windows commands.
ICACLS         Display, modify, backup, or restore ACLs for files and
               directories.
IF             Performs conditional processing in batch programs.
LABEL          Creates, changes, or deletes the volume label of a disk.
MD             Creates a directory.
MKDIR          Creates a directory.
MKLINK         Creates Symbolic Links and Hard Links
MODE           Configures a system device.
MORE           Displays output one screen at a time.
MOVE           Moves one or more files from one directory to another
               directory.
OPENFILES      Displays files opened by remote users for a file share.
PATH           Displays or sets a search path for executable files.
PAUSE          Suspends processing of a batch file and displays a message.
POPD           Restores the previous value of the current directory saved by
               PUSHD.
PRINT          Prints a text file.
PROMPT         Changes the Windows command prompt.
PUSHD          Saves the current directory then changes it.
RD             Removes a directory.
RECOVER        Recovers readable information from a bad or defective disk.
REM            Records comments (remarks) in batch files or CONFIG.SYS.
REN            Renames a file or files.
RENAME         Renames a file or files.
REPLACE        Replaces files.
RMDIR          Removes a directory.
ROBOCOPY       Advanced utility to copy files and directory trees
SET            Displays, sets, or removes Windows environment variables.
SETLOCAL       Begins localization of environment changes in a batch file.
SC             Displays or configures services (background processes).
SCHTASKS       Schedules commands and programs to run on a computer.
SHIFT          Shifts the position of replaceable parameters in batch files.
SHUTDOWN       Allows proper local or remote shutdown of machine.
SORT           Sorts input.
START          Starts a separate window to run a specified program or command.
SUBST          Associates a path with a drive letter.
SYSTEMINFO     Displays machine specific properties and configuration.
TASKLIST       Displays all currently running tasks including services.
TASKKILL       Kill or stop a running process or application.
TIME           Displays or sets the system time.
TITLE          Sets the window title for a CMD.EXE session.
TREE           Graphically displays the directory structure of a drive or
               path.
TYPE           Displays the contents of a text file.
VER            Displays the Windows version.
VERIFY         Tells Windows whether to verify that your files are written
               correctly to a disk.
VOL            Displays a disk volume label and serial number.
XCOPY          Copies files and directory trees.
WMIC           Displays WMI information inside interactive command shell.

For more information on tools see the command-line reference in the online help.
Windows-ul, ca si mai toate sistemele de operare majore, are implementate interfete grafice de interactiune cu utilizatorii sai astfel ca utilizarea acestuia este intuitiva si rapida. Insa comenzile execute in cadrul windows-ului cat si cele rulate in unele aplicatii care se executa in sistemul de operare au ca baza un sistem propriu de comenzi sub forma textuala numit CMD (Command Prompt) care interpreteaza comenzile introduse si le executa. Interfetele windows-ului ofera solutii pentru gestiunea generala a sistemului, insa uneori fie acestea nu sunt bine organizate astfel ca utilizatorul trebuie sa acceseze multiple interfete intr-un mod nepractic, fie nu exista o solutie automatizata de executare a comenzilor sau a operatiilor astfel ca utilizatorul trebuie sa acceseze manual diferite interfete sau sa ruleze diferite programe sau comenzi interne. In plus, exista si cazuri in care sistemul de operare Windows nu ofera interfate avansate pentru controlul sau gestiunea unor caracteristici proprii sau a unor dispozitive conectate la sistem.

  Despre Command Prompt (CMD)

CMD este o aplicatie de tip DOS (Disk Operating System), care pe langa faptul ca face parte din nucleul Windows-ului si este apelat de catre foarte multe programe care ruleaza in sistem, ofera si posibilitatea de a executa comenzi din line de comanda si nu neaparat din interfetele existente. Mai pe scurt CMD este o consola in care se poate introduce text ce reprezinta sintaxa unei comenzi de executat iar la apasarea tastei Enter sistemul va analiza comanda introdusa si o va executa asa cum a fost ea definita intern.

Pe oricare calculator cu Windows exista in mod standard si interpretorul de comenzi Command Prompt iar deschiderea lui se face prin mai multe modalitati. Una dintre ele este rularea unei aplicatii interne menita sa deschida rapid programe, se numeste Run si poate fi rulat prin apasarea tastelor Windows + R (tasta windows este situata intre Ctrl si Alt, avand logo-ul specific Windows); in fereastra deschisa tasteaza cmd si apasa Enter si se va deschide CMD. Alte modalitati de a accesa CMD este prin delasarea la meniul Start si cautarea programului scriind in caseta de cautare cmd - in cazul in care versiunea windowsului este mai recenta sau egala cu Vista-, daca versiunea este anterioara acesteia, de exemplu Win XP, Run este prezent direct in meniul de start.

Pentru a rula o comanda acceseaza cmd folosind una din modalitatile descrise mai sus, cu mentiunea ca sunt unele comenzi care necesita drepturi de administrator si deci in cazul Windows Vista, 7, 8, 8.1 si 10 trebuie ca programul cmd sa fie pornit cu astfel de drepturi. O posibila cale de a face acest lucru este prin cautarea cmd-ului in meniul de start, apoi se da click dreapta pe el si se alege optiunea "Run as administrator". Un mesaj de confirmare va aparea si va trebui sa se dea click pe Yes pentru a finaliza deschiderea interpretorului de comenzi cu drepturi depline asupra sistemului.

  Cum sa creezi un script cu comenzi CMD

Un script cmd, cunoscut si ca batch, este un fisier de tip text care contine o succesiune de comenzi cmd. Odata ce este rulat, adica este deschis asa cum este deschis un program (de ex. o aplicatie EXE) programul va lua pe rand fiecare comanda continuta in fisier si o va executa. Avantajul acestui lucru este ca pot fi imbinate o serie de operatii si comenzi care altfel nu ar fi fost posibile din cadrul interfetelor de sistem.

Procesul prin care se poate crea un script este foarte simplu. In locatia dorita, unde se doreste a exista scriptul (un bun exemplu ar fi desktop-ul) se da click dreapta in spatiu liber fara sa fie selectat in prealabil ceva si se alege New apoi Text Document, si se introduce un nume de fisier (de exemplu script) si apoi se apasa Enter. Va fi creat deci un document de tip text cu extensia txt. Deschideti fisierul si introduceti cate o comanda pe line apoi salvati modificarea facuta apasand Ctrl+S.

Exemplu de script cmd:

echo "Se incepe executarea scriptului"
@set a=%username%
msg * "Numele de utilizator este "%a%
pause

In acest stagiu, documentul nu poate fi executat pentru ca este de tipul text si de aceea trebuie sa fie modificata extenisa fisierului in .bat sau .cmd  Redenumiti deci fisierul astfel ca extensia .txt sa fie inlocuita cu una din cele doua mentionate anterior. Daca extensia nu apare la sfarsitul numelui de fisier, de exemplu script.txt atunci trebuie sa setezi din windows sa fie afisate extensiile tuturor fisierelor (vezi tutorialul de aici: Cum sa faci sa se afiseze extensia fisierelor in Windows). Dupa redenumire documentul trebuie sa fie de forma script.bat sau script.cmd.

Pentru a rula scriptul trebui sa dai dublu click pe acesta, caz in care va fi afisata consola cmd si stagiul executarii comenzilor din cadrul scriptului, eventual mesajele pe care comenzile le genereaza. Scriptul cmd dat exemplu mai sus va avea drept rezultat afisarea intr-o casuta de dialog a numelui utilizatorului

Exemplu de rulare script din command prompt (CMD).

sâmbătă, 8 iulie 2017

Agenda Telefonica proiect realizat in C++


In acest post v-om creea o aplicatie in limbajul de programare C++, care v-a rula in terminal si are ca scop stocarea datelor de contact ale unei persoane: nume, prenume, email, numar de telefon.
 
Codul sursa al acestei aplicatii este open source si poate fi descarcat de la adresa: https://github.com/mhcrnl/CppPhoneBook.
 


Resurse: https://www.sourcecodester.com/tutorials/cc/7726/simple-phone-book-c.html
Proiect nou: https://github.com/mhcrnl/PhoneBook-33


contact.h

1:  #ifndef CONTACT_H_INCLUDED  
2:  #define CONTACT_H_INCLUDED  
3:  #include <iostream>  
4:  #include <string>  
5:  #include <iomanip>  
6:  using namespace std;  
7:  class Contact{  
8:    string p_nume, p_prenume, p_email, p_telefon;  
9:  public:  
10:  /**  
11:    Constructorii clasei  
12:  */  
13:    Contact();  
14:    Contact(string nume);  
15:    Contact(string nume, string prenume);  
16:    Contact(string nume, string prenume, string email);  
17:    Contact(string nume, string prenume, string email, string telefon);  
18:    /**  
19:      Get/set methods  
20:    */  
21:    const string& getNume() const;  
22:    void setNume(const string& nume);  
23:    const string& getPrenume() const;  
24:    void setPrenume(const string& prenume);  
25:    const string& getEmail() const;  
26:    void setEmail(const string& email);  
27:    const string& getTelefon() const;  
28:    void setTelefon(const string& telefon);  
29:    const string getNumeIntreg();  
30:    void afisare();  
31:  };  
32:  #endif // CONTACT_H_INCLUDED  


Console Application Load, Save, Add, Delete, Sort, and Modify your contacts. Aplicatia este scrisa in c++ si este rulata in Code::Blocks 16.01 pe un sistem linux Fedora 24. Proiectul este realizat in 422 linii de cod.

Instalare

 

git clone https://github.com/mhcrnl/PhoneBook-1.git
cd PhoneBook-1
Deschiderea proiectului in Code::Blocks.

Functii

 

void Create();
void Load();
int Query(char Search[20]);
void Add();
void Delete();
void Modify();
void Print();
void Save();
void clean();
int valid(char num[]);
void sort();
void split(char string[100],char spliter);

Aplicatii in terminalul linux

Aceste  aplicatii sunt utilizate in terminal, iar instalarea lor s-a facut pe sistemul Fedora 24.

13. cat 
Permite crearea de file, vizualizarea continutului, concatenarea filelor si redirectarea acestora catre terminal sau fisiere.
Sintaxa:
  cat  [OPTIONS] [FILE] ...
Utilizare:
cat /etc/passwd   -afisarea continutului unei file

12. lp
submits files for printing, or alters a pending print job. Use a file name of "-" to specify printing from the standard input.
Utilizare:
 lp file.pdf      -printeaza fila.pdf in ton de gri
 lp -o ColorModel=color file.pdf   -printeaza color

11. lpr
Trimite fisiere la imprimanta pentru a fi printate. 
Utilizare:
lpr myfile.txt    -printeaza fila myfile.txt
cat myfile.txt | lpr   -citeste din standard input si trimite la copire fisierul
lpr -#3 myfile. txt    - 3 copii ale fisierului 

10. git 
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. 


9. top 
The top command is the traditional way to view your system’s resource usage and see the processes that are taking up the most system resources. Top displays a list of processes, with the ones using the most CPU at the top.




8. enscript
Enscript  converts  text  files  to  PostScript  and  spools  generated
       PostScript output to the specified printer or leaves it to file.  If no
       input files are given, enscript processes standard input.  Enscript can
       be extended to handle different output media and it  has  many  options
       which can be used to customize printouts.

7. grep 
grep este o comandă UNIX pentru căutare de text. Denumirea vine de la primele litere ale „global/regular expression/print”, ce reprezintă o serie de comenzi pentru editoare de text precum ed. Comanda "grep" caută în fișiere sau în intrarea standard liniile care corespund unei expresii regulate date și le scrie către ieșirea standard.
Utilizare:
   grep apple fruitlist.txt

6. ffmpeg 
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.
Instalare:
   sudo dnf install ffmpeg

5. wget 
GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies. 
Instalare:
   sudo dnf install wget 
Utilizare: 
 wget http://www.bankofengland.co.uk/publications/Documents/inflationreport/2017/may.pdf
 
4. links 
Web browser.
Instalare:
    sudo dnf install links

3. cmus 

is a small, fast and powerful console music player for Unix-like operating systems.
Instalare:
    sudo dnf install cmus


2. newsbeuter

Newsbeuter is an open-source RSS/Atom feed reader for text terminals. It runs on Linux, FreeBSD, Mac OS X and other Unix-like operating systems. Newsbeuter's great configurability and vast number of features make it a perfect choice for people that need a slick and fast feed reader that can be completely controlled via keyboard.
Instalare:
    sudo dnf install newsbeuter

1. abook

Este o agenda telefonica in terminal. 
Instalare:  
   sudo dnf install abook
Utilizare: 
man abook  >afiseaza manualul aplicatiei
abook -h >afiseaza meniul help al aplicatiei

Clienti de blogging

Pentru cei care utilizeaza platformele de blogging (Wordpress, Blogger, etc.), incerc sa gasesc cativa clienti de blogging pentru editarea continutul offline si publicarea online.


Instructiuni de instalare
Pentru Fedora acesta se poate instala cu comanda:
sudo dnf install gscribble -y