Faceți căutări pe acest blog

duminică, 25 august 2013

22 de ani de Linux!

 Acum 22 de ani, pe 25 august 1991, Linus Torvalds a făcut anunțul istoric prin care anunța nașterea kernelului Linux!

From: mailto: torvalds@klaava.Helsinki.Fi (Linus Benedict Torvalds)
To: Newsgroups: comp.os.inix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: 1991Aug25.205708.9541@klaava.Helsinki.Fi
Hello everybody out there using minix — I’m doing a (free) operating
system (just a hobby, won’t be big and professional like gnu) for 386
(486) AT clones. This has been brewing since april, and is starting to
get ready. I’d like any feedback on things people like/dislike in
minix, as my OS resembles it somewhat (same physical layout of the
file-system (due to practical reasons) among other things).
I’ve currently ported bash (1.08) and gcc (1.40), and things seem to
work. This implies that I’ll get something practical within a few
months, and I’d like to know what features most people would want. Any
suggestions are welcome, but I won’t promise I’ll implement them :-).
Linus (mailto: torvalds@klaava.helsinki.fi)
PS. Yes — it’s free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably
never will support anything other than AT-harddisks, as that’s all I
have :-(.


 Tot ce-mi pot dori e ca GNU/ Linux să se mențină pe aceleași poziții în privința stabilității, vitezei de lucru și securității, și (opțional) să fie folosit de cât mai mulți utilizatori!
 Mulțumim Linus, La mulți ani Linux! :D

 Sursă:  https://www.linux.com/news/software/linux-kernel/734956-linuss-famous-email

 Iată și traducerea în română:

De la: Linus Benedict Torvalds
Newsgroup: comp.os.minix
Subiect: Ce aţi dori să vedeţi cel mai mult în minix?
Sumar: mic sondaj pentru noul meu sistem de operare
ID-Mesaj: <>
Dată: 25 Aug 91 20:57:08 GMT
Organizaţie: Universitatea din Helsinki**

Salutări tuturor celor care folosesc minix. Construiesc un sistem de operare (gratuit)
(doar un hobby, nu o să fie la fel de mare şi profesionist ca GNU) pentru clone AT 386 (486).
Lucrez la el din aprilie şi e aproape gata.
Aş vrea să primesc feed-back cu lucrurile care plac/nu plac în minix, deoarece sistemul meu
de operare se aseamănă într-o oarecare măsură cu minix (aceeaşi structură a sistemului de fişiere
(datorită unor raţiuni practice) printre altele).
Am portat bash (1.08) şi gcc (1.40), şi lucrurile par să meargă.
Asta înseamnă că o să obţin ceva practic în cîteva luni şi vroiam să ştiu ce altceva ar mai dori
lumea să conţină. Orice sugestie e binevenită, dar nu promit să o şi implementez.

              Linus

P.S. Da – nu conţine cod minix şi are multi-threaded fs. Nu e portabil (foloseşte task-switching 386 etc)
şi probabil nu va suporta nimic altceva decît hardiskuri AT, deoarece doar asta am.
 Sursă: http://wiki.mandrivausers.ro/linux/istorie/istoria_linuxului

 Statistici:
25 august 1991: anunțul lansării Linux;
17 septembrie 1991: Linux 0.1 a fost lansat și pus pe net la dispoziția doritorilor;
5 octombrie 1991: este lansată versiunea 0.2, însoțită de alt anunț al lui Linus Torvalds (vedeți wiki mandrivausers.ro).
 Restul e istorie!

mc 2/ conexiuni la distanță

 Am scris cu ceva timp în urmă câte ceva despre mc (Midnight Commander ), iar dacă citiți comentariile puteți vedea că amicul symbianflo s-a oferit voluntar să spună niște lucruri privind suportul ssh, ftp, și altele la fel.
 Fiind un tip parolist mi-a trimis materialul, relativ repede (:D)...
 Îi mulțumesc pentru material, mai ales că este prima colaborare de acest gen, și acum să-l urmărim în descifrarea tainelor mc. În primul rînd porniți un terminal și-n terminal mc, apoi urmați pașii.

1- Conexiune ssh (Secure Shell)
 Alegeți coloana în care doriți să aveți serverul partajat la distanță, în exemplul următor a fost selectat tabul din dreapta al mc.

Din meniu alegeți ”conexiune shell”, în noua fereastră cu interfață ncurses introduceți datele în secvența:
utilizator@server-partajat-la-distanță:port
și apăsați Enter. Se va deshide o noua fereastră în care vi se va cere parola de acces (caracterele tastate nu vor fi vizibile, exact ca-n orice shell linux).

 În exemplul următor am selectat mai multe fișiere (tasta Insert= Ins) și le-am copiat de pe mașina locală pe server.

 Operația va dura mai mult sau mai puțin în funcție de viteza noastră de upload furnizată de ISP (furnizorul de net) și în funcție de dimensiunea fișierelor copiate.


2- Conexiune FTP/ SFTP (File Transfer Protocol/ Secure File Transfer Protocol)
 Exemplu următor va avea loc în același panou din dreapta, dar selectăm conexiunea SFTP.

 După cum cred că realizați, urmează introducerea datelor dumneavostră de cont, similar cu primul caz referitor la ssh:
utilizator@server-partajat-la distanță:port
apoi apăsați Enter sau dați clic pe Ok în fereastra de dialog ncurses apărută.

 În următoarea fereastră de dialog apărută introduceți parola de acces aferentă contului.

 Mare atenție la introducerea parolei, în unele din versiunile precedente ale mc, introducerea unei parole incorecte se solda cu un crash al managerului mc, drept urmare trebuia reluată de la capăt procedura de logare!
 În fine, dacă toate datele au fost introduse corect ar trebui să aveți deja accesul la contul partajat pe serverul respectiv.


3- Midnight Commander, detalii și versiuni
 Acest material se referă la versiunea 4.8.10 a mc, ultima versiune stabilă în prezent.
 Pachetele pentru distribuțiile Rosa (LTS și Fresh) și OpenMandriva sunt împachetate/ menținute/ actualizate chiar de maestrul symbianflo în mediul main. Distribuții precum Arch, Sabayon, Debian, Fedora Rawhide sau Mageia Cauldron au aceeași versiune a mc, posibil ca lista distribuțiilor să fie mai lungă, dacă nu aveți această versiune (și aveți probleme cu versiunea curentă de mc), puteți solicita maintainerilor acelei distribuții versiunea 4.8.10 sau puteți instala din surse. Caz în care vă pot fi utile unele patch-uri ce îmbunătățesc integrarea și aspectul: https://abf.rosalinux.ru/symbianflo/mc/tree/rosa2012.1?


4- Precizări
 Screenshoturile precedente aparțin autorului materialului (symbianflo), nu-mi permit să le înlocuiesc, chiar dacă limba folosită e-un ciudat dialect al limbii române (cel puțin aparent... :D), dar ar trebui să vă descurcați indiferent de limba sistemului. Eu folosesc limba română, ar fi păcat de munca traducătorilor să nu fac așa:
 Și în engleză:


duminică, 18 august 2013

Comenzi "periculoase"?

 Există comenzi considerate periculoase, rm, dd, mkfs, combinații ciudate ( :(){:|:&};: = un exemplu de fork bomb: http://en.wikipedia.org/wiki/Fork_bomb#Example_fork_bombs )
 E adevărat, folosite greșit pot face pagube, niște exemple:
rm -rf /*                                         = șterge forțat tot ce conține partiția /
dd if=/dev/zero of=/dev/sda     = scrie discul /dev/sda cu 0-uri, pierdeți tot conținutul
mkfs.ext4 /dev/sda1                    = formatează partiția /dev/sda1 în ext4

Dar nu sunt singurele posibilități de-a ne ”șifona” serios sistemul, foarte multe comenzi comune, banale utilizate greșit fac chestii similare...
 Hai să vedem un exemplu, ls:
ls -l                                                 = listează, afișează conținutul directorului curent sau al celui pasat ca argument (ls -l Documents va afișa conținutul directorului Documents)
ls -l > list.txt                            = scrie conținutul directorului curent în fișierul list.txt, dacă fișierul nu există este creat, dacă fișierul are conținut acesta va fi suprascris
ls -l >> list.txt                     = idem, dar outputul comenzii ls -l va fi adăugat la finalul fișierului, nu se pierde conținutul existent
ls -l > list.txt ; cat list.txt      = scrie conținutul directorului în fișierul indicat și apoi afișează conținutul fișierului (conținut care de fapt coincide cu cel al directorului curent...), deci outputul e afișat în terminal și salvat în fișierul list.txt
 Chestii inofensive, banale, nu? Dar ce credeți că va face comanda următoare?
ls -l > /boot/grub/grub.cfg
 Nu mare lucru dacă nu sunteți logat ca root, nu ați avea permisiuni de scriere, dar ca root sau precedată de sudo va suprascrie /boot/grub/grub.cfg... Destinația ar putea fi orice fișier important, /etc/fstab, /etc/pcman.conf, etc, rezultatele nu ne-ar plăcea deloc... :D
 Problema o constituie redirecționarea outputului comenzii ls către un anume fișier (unul important, de sistem) și suprascrierea acestuia! Similar putem greși cu wc, cat, etc.

 Un alt caz este tee.
ls -l | tee list.txt           = va direcționa outputul comenzii ls -l către fișierul list.txt, dacă fișierul nu există va fi creat, iar outputul scris în fișier, inofensiv
tee *                                = va șterge conținutul tuturor fișierelor din directorul curent, dacă directorul curent este ~ sau /, sau dacă pasăm un director important ( sudo tee /* sau tee ~/.*) pierdem toate fișierele importante, mai exact conținutul acestora!

 Tocmai am pățit o asemenea chestie cu tee, nu ceva serios, eu testez comenzi neclare, dubioase, potențial periculoase în partiția mea pentru teste, sau măcar în locații speciale, neimportante, creez un director de test, cu sud-directoare și fișiere și văd ce se întâmplă. Evident că e indicat să ne abținem de la așa ceva, dar cum eu sunt curios și mai ales cum am un sistem de lucru (Arch) și întotdeauna am și o distribuție în teste (care oricum va fi înlocuită curând) pot testa pe aceasta din urmă, am învățat destule așa...
 La fel de important e să nu abuzăm de permisiunile de root și să avem un backup al sistemului.
 Problema a fost neînțelegerea corectă a modului de lucru al tee, aplicație folosită pentru a citi date/ output și a-l afișa pe display  și a-l stoca și într-un fișier concomitent.  Greșeala mea a fost că am presupus că dacă nu există output care să fie citit (datele citite de tee din stdin, care date?) nu se întâplă nimic, asta datorită lipsei parametrilor necesari, adică o comandă incompletă...   :( Assumption is the mother of all FUCK UPS!!!  De fapt tee citește ”nimic”, scrie nimic!
  Faptul că folosisem anterior tee nu m-a scutit de greșeli, folosisem comanda într-un mod aparent diferit (ls -l | tee ~/list.txt  ~/Documents/list.txt sau wc * | tee -a ~/count.txt | sort).
 În fine, nu vă bucurați prematur, singura ”rană” am căpătat-o în ego (orgoliu ar zice vreo doi tipi pe care-i cunosc), iar cunoștințele căpătate astfel sunt mai importante decât ”umilința” de moment sau (evident) decât 3-4 fișiere de sacrificiu!

RECOMANDĂRI:
1- nu rulați comenzi pe care nu le cunoașteți/ înțelegeți;
2- nu executați comenzile ca root sau cu sudo;
3- nu faceți probe pe sistemul de lucru, principal, testați acele comenzi pe un sistem de sacrificiu, o distribuție aflată în teste;
4- dacă nu aveți sistem de rezervă, dar nu vă puteți abține verificați mai întâi cu man comanda sau comanda --help ce anume face acea comandă; dacă tot nu lămuriți căutați și pe net materiale/ tutoriale despre comanda cu pricina;
5- înlocuiți la parametri directoarele/ fișierele importante cu unele de test; chiar și pe mașina de test procedați la fel; de exemplu în loc de / pasați ~/test, în loc de /* puneți ~/test/fișier-neimportant;
6- nu uitați: înainte de ”teste” salvați-vă directoarele/ fișierele mai importante pe discuri externe/ dvd-uri/ servicii de stocare online; faceți backup sistemului, operație indicată a fi făcută periodic;
7- așteptați-vă la ce e mai bine, dar pregătiți-vă de ce e mai rău, shit happens...

 PS: În mod normal nimeni nu prea ascultă de sfaturi de astea, așa că dacă pățiți ceva urât (sau ați pățit), spuneți-mi și mie într-un comentariu, măcar cu atât să mă aleg și eu. Același lucru și în privința posibilelor sugestii/ recomandări.

sâmbătă, 17 august 2013

Ne folosește cineva conexiunea wireless?

 Bănuiesc că majoritatea folosiți o conexiune parolată WPA2 (Wi-Fi Protected Access 2) sau măcar WEP (Wired Equivalent Privacy) cu o parolă adecvată.
 Dar sunt destul de mulți cei ce au conexiuni neprotejate sau care folosesc parole stupide. În orice caz există destui ”amatori” de net gratuit, deci dacă observați o scădere de viteză e bine să faceți niște verificări... Trebuie să avem instalat nmap.

 În primul rând trebuie să știm adresa IP, intervalul de adrese a rețelei, interfața utilizată (de obicei este wlan0, dar nu neapărat). Folosim ifconfig sau ip (ip route, ip addr) sau chiar wicd-curses ne poate da informații la Preferințe.

┌─[ shogun @ stressat ] - [ Arch ] - [ ~ ]
└─[$]> ip route
default via 192.168.0.1 dev wlp1s0  metric 303
192.168.0.0/24 dev wlp1s0  proto kernel  scope link  src 192.168.0.100  metric 303
192.168.0.100 via 127.0.0.1 dev lo  metric 303 


 Cu verde este IP router, cu galben interfața (wlp1s0), cu roșu intervalul de adrese disponibile în rețea, cu cyan (bleu) adresa IP a mașinii.



  Ok, am aflat informațiile necesare, hai să vedem cine e conectat la wireless-ul nostru. Folosim nmap cu diverse opțiuni, în funcție de câte anume vrem să știm și de timpul pe care suntem dispuși să-l alocăm sarcinii. Nmap trebuie folosit ca root sau cu sudo, merge și ca user normal dar informațiile sunt incomplete, trunchiate!
 Varianta rapidă, asta ar trebui folosită implicit, abia dacă observăm nereguli trecem la alta:
nmap -sP 192.168.0.0/24
 E doar o scanare ping, astfel vedem hosturile active, în imaginea precedentă primul este routerul Tp-link, al doilea desktopul și-n fine laptopul.
 Plus o tabletă:

 Vrem să aflăm mai multe despre mașinile conectate?
nmap -O 192.168.0.0/24
nmap -A -T4 192.168.0.0/24

 Evident că scanarea va dura mai mult (10.36 secunde prima comandă și 187.78 secunde a doua comandă, pentru cele trei hosturi detectate, comparativ cu 1,99 secunde la scanarea ping, dar astfel aflăm multe informații (OS, versiune,nume sistem, workgroup, adresă MAC, porturi, etc). Poate dura mai puțin sau mai mult, în funcție de numărul hosturilor din raza celor 256 adrese IP scanate.




 ACTUALIZARE: după cum spunea Adrian Munteanu pe Google+, dacă doriți doar să vedeți hosturile din rețea (simplu și rapid, fără multe informații) e suficientă alternativa următoare:
1- ping 192.168.0.255 -b
2-  arp -n:
┌─[ shogun @ stressat ] - [ Arch ] - [ ~ ]
└─[$]> arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.101            ether   00:1d:60:da:e5:d2   C                   wlp1s0
192.168.0.1                ether   f8:d1:11:43:6b:70    C                   wlp1s0

vineri, 16 august 2013

Creare, ștergere, formatare partiții CLI (fdisk+ mkfs)

 Putem crea partiții folosind utilitare precum Gparted sau Partionmanager în interfața graficp sau fdisk, cfdisk, parted în linia de comandă.

 Gparted:
  Partitionmanager:

 fdisk
 Comenzile se dau ca root sau cu sudo în față, asta deoarece avem nevoie de permisiuni de root.
- Afișare partiții:
fdisk -l 
 Putem alege/ specifica un singur disc:
fdiskl -l /dev/sda sau fdisk -l /dev/sdc

- Manipulare partiții:
fdisk /dev/sdx  (unde /dev/sdx va fi înlocuit după caz de /dev/sda, /dev/sdb, /dev/hdc, etc, apoi procesul este interactiv, trebuie să pasăm opțiunile necesare).
 Deschidem un terminal și dăm comanda fdisk /dev/sdx, de exemplu fdisk /dev/sdb
  După cum spuneam este un proces interactiv, ni se cere specificarea operațiunii dorite (d= delete, ștergere partiție, n= new, partiție nouă, p= print,afișare tabelă partiții, l= list, afișează tipurile de partiții recunoscute,  w= write, scriere tabelă nouă partiții, q= quit, părăsire, închidere aplicație fără salvarea modificărilor, etc, x= expert mode, nu ne interesează!, m= meniu help), dacă nu știm exact ce trebuie apăsat m ne prezintă opțiunile.
 În continuare voi prezenta un model de utilizare fdisk folosind un stick usb de 16 GB. Recomandarea mea către începători este să testeze fdisk pe un stick usb sau pe un disc mai puțin important...
- Listare partiții: apăsăm p;
- Ștergere partiții: tastăm d, selectăm partiția, dacă e una singura va fi aleasă implicit;
- Creare partiții: scriem n, alegem tipul partiției (primară sau extinsă), numărul partiției, tipul și numărul pot fi lăsate cele implicite apăsând Enter, apăsați Enter după First sector, iar după Last sector puneți dimensiunea partiției în MiB (+8200M va crea o partiție de aproximativ 8 GB de exemplu, +10240M una de 10 GB, etc ) sau în GiB (+8G sau +10G), sau apăsați Enter pentru a folosi tot spațiul liber existent pe disk.
 La final apăsăm w pentru a scrie tabela de partiții pe disk sau q dacă am greșit ceva, sau totul a fost doar un test pentru a vedea cum funcționează fdisk.

cfdisk
 Este simplu de folosit deoarece are o interfață ncurses, opțiunile sunt în partea de jos a ferestrei, navigăm între partiții cu săgețile sus- jos și între opțiunile disponibile cu săgețile stânga- dreapta, cu Enter selectăm opțiunea dorită, avem la dispoziție și meniu help.
 Putem alege discul dorit cu comanda cfdisk /dev/sdb, și chiar partiția cu cfdisk /dev/sda4, cfdisk simplu va arăta primul disc, /dev/sda.



FORMATARE
Toate comenzile trebuie date ca root sau precedate de sudo! /dev/sdxy sau /dev/hdxy reprezintă o partiție anume, x discul (a, b, c, etc, pentru primul, al doilea, al treilea disc) și y partiția (1, 2, 3, etc, prima partiție de pe disc, a doua partiție, șamd), deci va fi /dev/sda1 sau /dev/sdb3 pentru discuri SCSI, /dev/hda1 pentru discuri IDE, șamd, .
 În funcție de natura formatării aveți nevoie de pachete precum ntfs-3g (pentru ntfs), btrfs-progs (btrfs), jfsutils (jfs), reiser4progs (reiser4), archzfs (zfs), dosfstools (pentru fat 32), hfsprogs (hfs).
 Partițiile trebuie să fie mai întâi demontate (umount /dev/sdxy = umount /dev/sda2 de exemplu).
 Putem ține minte utilitarele următoare simplu, mkfs e tot ce ne trebuie, tastăm mkfs și apoi TAB, așa primim toate variantele posibile, completăm comanda... :D Sau putem folosi comanda mkfs -t tip-partiție /dev/sdxy (mkfs -t ext4 /dev/sdb1).
ext4:
mkfs.ext4 /dev/sdxy   (de exemplu mkfs.ext4 /dev/sdb1)
ext3:
mkfs.ext3 /dev/sdxy   (mkfs.ext3 /dev/sda3)
swap:
mkswap /dev/sdxy   (mkswap /dev/sda5)
reiser4:
mkfs.reiser4 /dev/sdxy    (mkfs.reiser4 /dev/sda4)
btrfs:
mkfs.btrfs /dev/sdaxy     (mkfs.btrfs /dev/sda1)
jfs:
mkfs.jfs /dev/sdaxy     (mkfs.jfs /dev/hdb3)
hfs (partiție Mac OSX):
mkfs.hfsplus -v nume /dev/sdxy   (mkfs.hfsplus -v mac /dev/hdb2)
fat32:
mkfs.vfat -F32 -n nume /dev/sdxy   (mkfs.vfat -F32 -n Kingston /dev/sdb1)
ntfs:
mkntfs /dev/sdxy   (mkntfs /dev/sdb4)

marți, 13 august 2013

Verbozitate pacman/ Arch

Implicit managerul de pachete al ArchLinux pacman e setat să afișeze pachetele ce vor fi actualizate și versiunile acestora.

 Dacă doriți mai multe detalii decomentați linia #VerbosePkgLists din secțiunea # Misc options. Pentru output ceva mai colorat, mai vizibil decomentați și #Color. Cu această ocazie puteți vedea și alte setări din /etc/pacman.conf...

 Rezultatul:


duminică, 11 august 2013

Amuzante (2)

Linus Torvalds once found a segmentation fault in the universe.
Linus Torvalds can run kill -9 and kill Chuck Norris.
Linus Torvalds doesn’t die, he simply returns zero.
Linus Torvalds first written program had artificial intelligence.
Linus can divide by zero.
Linus Torvalds runs Linux on his wristwatch and toster.
Linus Torvalds doesn’t receive error messages.
There is no theory of probability, just a list of events that Linus Torvalds allows to occur.
Linus Torvalds does not sleep. He hacks.
Linus surfs the web using nothing but netcat.
Linus Torvalds can play 3D games in his head by interpreting the source code in real-time.
Linus made the red pill.
Linus Torvalds didn’t learn from the University of Helsinki, the University of Helsinki learned from Linus Torvalds.
Linus Torvalds once developed a programming language so good that it makes python look like punch cards.
Linus Torvalds doesn’t need to boot.
Linus is real, unless declared Integer.
Linus doesn’t push the flush toilet button. He simply says “make clean”.
Linus Torvalds has no dependencies.
Linus Torvalds takes one look at your desktop and knows which porn sites you visited. In the last ten years...
Linus can enrich himself simply by chowning your bank account. He does not do this because there is no challenge in it.
There are no man pages for Linus Torvalds, only god pages.
Linus Torvalds can do an infinite loop in five seconds… in his head.
Linus Torvalds doesn’t wear glasses anymore not because he had laser eye surgery, but because he finally got his xorg.conf properly configured in his head.
Linus Torvalds can use a nice level lower than -20.
Linus Torvalds doesn’t need to mount his drives.
Linus Torvalds doesn’t debug. His programs are always perfect.
Linus Torvalds can install Linux on a dead badger.
Linus Torvalds doesn’t need backups. He just uploads his files and lets the world mirror them.
Linus Torvalds is taking over the world. Microsoft is just a diversion so that no one would suspect a mild mannered Finnish programmer.
Linus Torvalds already has Linux 4.0. He is just keeping it to himself to build suspense.
Linus Torvalds didn’t design Linux to run on the 386. Intel designed the 386 to run Linux.
People pray to Jesus, but Jesus prays to Linus Torvalds.
Linus need not worry about Microsoft patent crap, he simply do `sudo mv /tmp/ms /dev/null`.
Linus Torvalds is more powerful than root.
If you could read Linus Torvald’s mind, you’d find that his stream of conciousness is entirely in binary.
Linus scared A and B away, so they had to make C.
Linus only has 2 buttons on his keyboard ’1′ and ’0′
Linus’s kernel never panics.
Linus does not use the GCC, he _writes_ binaries.
Linus Torvalds doesn't just have "rwx" permissions for his files, he has all permissions from "a to z".

Sursă: http://www.linuxscrew.com/2007/10/28/fun-chuck-norris-vs-linus-torvalds/

Really, I’m not out to destroy Microsoft. That will just be a completely unintentional side effect.
Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it.
Software is like sex; it’s better when it’s free.
Is “I hope you all die a painful death” too strong?
Most days I wake up thinking I’m the luckiest bastard alive.
An infinite number of monkeys typing into GNU emacs would never make a good program.
Talk is cheap. Show me the code.
I’m a bastard. I have absolutely no clue why people can ever think otherwise. Yet they do. People think I’m a nice guy, and the fact is that I’m a scheming, conniving bastard who doesn’t care for any hurt feelings or lost hours of work, if it just results in what I consider to be a better system. And I’m not just saying that. I’m really not a very nice person. I can say “I don’t care” with a straight face, and really mean it.
Those that can, do. Those that can’t, complain.
You see. I don’t think any new thoughts. I think thoughts that other people have thought, and I rearrange them. But Sara, she thinks thoughts that never were before.
 

”Dificultate” linie de comandă

 Văd foarte mulți utilizatori de GNU/ Linux oarecum speriați de linia de comandă, aducând diverse așa-zis argumente anti-CLI, că nu e intuitivă, că e greu de folosit, durează prea mult să faci lucruri simple, e prea mult de tastat în terminal, comenzile sunt dificil de memorat, au prea multe opțiuni/ argumente, șamd.
 Trebuie să precizez în primul rând că nu-s vreun linux-guru, power-user, n-am tangență cu domeniul IT direct, nu-s sysadmin, programator sau altceva similar, sunt doar un user comun, casnic. În al doilea rînd nu am pretenția ca orice utilizator să folosească CLI, e chestie de preferință, dar m-au cam exasperat văicărelile, noile ”mituri urbane” privind linia de comandă, deci hai să vedem cum stau lucrurile, cel puțin după părerea mea!
 Nu vă impacientați, nu voi face apologia CLI, pur și simplu voi compara cele două metode (linie comandă și grafică) după câteva sarcini/ aplicații.

 Dar simultan să demolăm puțin ”argumentele” expuse anterior...
1- Linia de comandă nu e intuitivă
 Adică cum nu e intuitivă? Comenzile reprezintă numele aplicațiilor sau prescurtările denumirilor sarcinilor în limba engleză:
cp= copy= copie,
rm= remove= șterge/ înlătură 
mv= move= mută
mkdir= make directory= creează director
pwd= print working directory= arată directorul curent
ls= list= listează, afișează, arată
 Și așa mai departe... Sau dorim să pornim o aplicație, tastarea numelui aplicației deschide acea aplicație, putem pasa și ceva opțiuni, argumente (numele/ calea către un fișier audio, video, text, imagine, sau o adresă web, etc.):
audacious
apper
systemsettings
qwenview imagine
firefox yahoo.com
okular fișier.pdf
mplayer *.avi   (astfel mplayer va reda toate fișierele .avi) 
xdg-open fișier  (dacă nu cunoaștem aplicația ce deschide un fișier, indiferent de ce fel/ text, pdf, audio, video, xdg-open va deschide fișierul cu aplicația implicită)

2- Comenzile sunt greu de memorat
 Cu puțin efort ne vom aminti numele comenzilor: ne gândim la ce anume face acea comandă, la numele în engleză, cum s-ar prescurta și gata. Nu? Apăsarea tastei TAB ne oferă toate comenzile disponibile, e edevărat că sunt multe, dar dacă cunoaștem 1-2 litere numărul scade semnificativ...
 Este bine să avem o listă cu cele mai folosite comenzi, să învățăm să citim manualul (man comandă, de exemplu man rm sau man touch, etc), nu știu sigur cum fac cei foarte avansați, dar eu citesc de multe ori manualele comenzilor, nu pot reține tot, important e să știm comanda și cam ce face ea, apoi manualul  sau ajutorul/ help (comandă -h sau comandă --help, de exemplu ls --help) ne va da opțiunile utile. REȚINEȚI: nu-i neapărată nevoie să știm toate comenzile pe de rost, important e să citim man și help, așa ne descurcăm! Asta nu înseamnă că nu trebuie să știm comenzile uzuale, de bază, de exemplu opțiunile managerului de pachete CLI (pacman, apt-get, urpmi, etc)!

 Tocmai mi-am amintit un subiect similar (http://forum.ubuntu.ro/viewtopic.php?id=11101), unde bravul @Pixelut (ieșean de-al meu, user de Ubuntu, fost user de Mandriva, un tip extrem de simpatic, adversar convins al CLI, contibutor la KDE, linuxist mult mai vechi ca mine, tip care demonstrează că poți folosi Linux numai din interfața grafică!) își exprima indignarea față de CLI. I-am răspuns cu o glumă, localizarea shell-ului, dar uneori mă gândesc că poate-ar fi o chestie interesantă pentru unii, crearea unor aliasuri de genul:
alias fădirector='mkdir'
alias dumă-n='cd'
alias arată='ls -al'
alias făfișier='touch'
 Dacă nici așa comenzile nu sunt intuitive și ușor de memorat... :(

 Ok, e o glumă, dar puteți vedea adaptabilitatea, puterea și complexitatea liniei de comandă, e o unealtă mult prea bună pentru a fi ignorată, sau mai rău, blamată!

3- Prea mult de tastat
 E adevărat că multe comenzi pot fi destul de lungi, pot avea multe argumente, obiectul ”țintă” poate avea un nume lung, dar există multe posibilități de-a ușura lucrul în terminal:
- aliasuri: putem crea în .bashrc aliasuri prescurtînd comenzile (alias tva="pactl set-card-profile 0 output:hdmi-stereo", alias ttyc='ffmpeg -f fbdev -r 30 -i /dev/fb0 tty-capt.avi', etc): http://stressat.blogspot.ro/2011/12/alias.html
- funcții bash: adăugate tot în .bashrc:  http://stressat.blogspot.ro/2011/12/functii-bash.html
- tasta Tab, așa cum arătam anterior;
- wildcard/ metacaractere (* înlocuiește orice/ oricâte caractere,? înlocuiește un caracter, etc: http://stressat.blogspot.ro/2011/09/metacaractere-wildcards.html
 O problemă comună, des întâlnită o reprezintă spațile din numele fișierelor. Soluția este simplă, scrierea numelui între " ("nume-fișier"= "Music/Videoclipuri/Whigfield - Sexy Eyes.mp4") sau ' ('nume-fișier'= 'Music/Videoclipuri/Whigfield - Sexy Eyes.mp4') sau adăugarea simbolului \ înainte de spații (Music/Videoclipuri/Whigfield\ -\ Sexy\ Eyes.mp4). Autocompletarea cu Tab funcționează și aici (și-n  orice situație...), deci dacă scriem 2-3 litere putem apăsa Tab și se va autocompleta numele dacă este o singură variantă sau ne vor fi prezentate toate variantele posibile, mai tatăm 2-3 caractere și apăsam iar Tab, etc.

4- Timpul îndelungat pentru realizarea unei sarcini
 Sigur că pentru începători poate dura ceva mai mult, dar un începător va căuta și-n meniu o aplicație pînă-i vine rău. Dacă mai știe cîte ceva va folosi un lansator gen krunner pentru rapiditate și ușurință.
 Ok, va porni aplicația dorită, mai rămâne să și facă ceva util cu aceasta, hai să vedem câteva exemple, sarcini uzuale.
  1- Screenshot
 GUI: krunner- ksnapshot- alege modul (ecran complet, fereastră, regiune dreptunghiulară, etc)- eventuala temporizare-  fă captură nouă- salvează în (alege locația, numele screenshotului). Ksnapshot are alocat implicit un hotkey, deci putem sări primii pași, dar nu și restul.
 CLI: scrot nume-screenshot.png, dacă vrem și temporizare folosim opțiunea -d număr-secunde (-d 3 va face captura după 3 secunde), eventual și -c (count, numărătoare), putem alege fereastra/ zona cu -s (selecție), putem crește calitatea cu -q (implicit e setată la 75, putem opta între 0-100). Wow, uite că au dreptate cei ce spun că-s prea multe opțiuni/ argumente, nu? Dacă folosim des o aplicație, să spunem scrot, vom crea un alias: alias scrot="scrot -q 100 -t 35". -t se referă la thumbnail (miniatură), putem avea imaginea la dimensiune normală și o miniatură (-t 25 = 25% din imagine, -t 50 = jumătate din dimensiunea imaginii, etc).
 Egalitate.
CLI 1-1 GUI

 2- Upload imagine pe web
GUI: deschidem un browser, intrăm pe http://imgur.com/, selectăm imaginea de pe calculator, așteptăm să se încarce.
CLI: imgurbash nume-imagine.
 CLI e mai rapid și simplu.
CLI 2-1 GUI
  
3- Conversie
 Să presupunem că dorim să convertim formatele câtorva fișiere, imagini, audio, video, etc.
 GUI: în interfața grafică putem folosi aplicații care trebuie căutate, deschise, verificate meniurile, opțiunile, căutate fișierele sursă, setat nume pentru fișierele convertite, aleasă locația unde vor fi salvate.
 CLI:
convert imagine.png imagine.jpg  (= conversie png> jpg) 
convert -resize 800x600 imagine1.png imagine2.png  (= redimensionare la 800x600)
ffmpeg -i fișier-video.avi fișier-video.mpg  (= conversie avi> mpg)
ffmpeg -i fișier-video.mkv fișier-audio.mp3  (= extragere stream audio dintr-un fișier video, astfel avem melodia respectivă în format .mp3)
Câștigă CLI.
CLI 3-1 GUI

ACTUALIZARE: după cum bine grăiește maestrul symbianflo în comentarii (mulțumesc pentru avertizare!), pentru a face conversiile sus- zise trebuie să aveți instalate anumite pachete precum imagemagick, ffmpeg, mencoder.

4- Ștergere/ mutare/ copiere
 Nu cred că doriți să aveți zeci sau sute de screeshoturi, deci le ștergeți sau eventual le mutați într-un director dedicat.
GUI: deschideți file managerul (Dolphin să zicem), bifați toate imaginile- clic dreapta- Remove (sau Shift- Del)- confirmați operația.
CLI:
rm *.png  (= ștergere)
mv *.png Pictures/Screenshots  (= mutare) 
 Cli e mai rapid.  
CLI 4-1 GUI

5- Creare directoare/ fișiere
GUI: Poate nu aveți directorul Screenshots din Pictures, poate nici măcar directorul Pictures, deci deschideți Dolphin- clic dreapta- crează director nou (Pictures)- intrați în noul director- clic dreapta- crează nou director- tastați numele Screenhots.
CLI: 
mkdir -pv Pictures/Screenshots  (crează ambele directoare, sau oricâte e nevoie, de exemplu mkdir -pv 1/2/3/4/5/6 va crea toate acele directoare, -p se referă la ”directoarele părinte”, -v vă va anunța crearea fiecărui director.
 Câștigă CLI.
 CLI 5-1 GUI


6- Navigare în/ între directoare/ fișiere
 Nu cunoașteți locația și numele exact al tuturor directoarelor și fișierelor deci folosiți managerul de fișiere, Dolphin, e mai simplu. Da, dar există și managere de fișiere CLI, mc, ranger, etc. Puteți naviga folosind tastele săgeți sau mouse-ul, puteți da dublu clic pentru a deschide un fișier sau Enter, este foarte similar cu un file manager grafic. Dacă setați bine mc sau ranger vor fi deschise fișiere audio, video, imagini, arhive, pdf-uri, text, linkuri la un simplu Enter sau clic stânga. Deci vizionarea unui film/ videoclip/ playlist sau ascultarea unor melodii este la fel de simplă.
http://stressat.blogspot.ro/2012/07/mc-midnight-commander.html
 Egalitate între GUI și CLI.
CLI 6-2 GUI
 
7- Administrare utilizatori
 Poate primele sarcini vi se par prea simple, hai să vedem ceva mai ”complicat” (pentru unii...), administrarea conturilor de utilizatori, adăugare, ștergere, redenumire, etc. Putem folosi aplicațiile grafice dedicate, kuser sau o simplă comandă.
GUI: Alt+F2- scriem kuser- punem parola de root- alegem dintre opțiuni creare, editare, ștergere- facem ceea ce dorim.
CLI: Adăugare cont utilizator:
useradd -m -g grup -G grupuri -s shell utilizator && passwd utilizator
useradd -m -g users -G root,local,video,audio,tty,wheel -s /bin/bash dan && passwd dan
Ștergere cont utilizator:
userdel -r utilizator
userdel -r dan 
Adăugare user într-un grup:
gpasswd -a utilizator grup
gpasswd -a dan vboxusers 
Crearea mai multor conturi simultan:
http://stressat.blogspot.ro/2012/08/adaugare-conturi-multiple-utilizatori.html
 CLI este din nou mai rapidă.
CLI 7-2 GUI


 MEA CULPA
 Mai sus am dat câteva exemple, am urmărit oarecum un anumit fir logic, de execuție, aș putea continua cu multe alte exemple (mplayer, nvlc, moc, youtube-viewer, tvmaxe-cli, etc), dar cred că-i suficient. După cum cred că v-ați prins, am ”trișat” puțin arătând punctul de vedere al unui utilizator mediu, nu al unui începător... Nu de alta, dar mulți n00bi unii începători nu se descurcă nici cu aplicațiile grafice prea grozav... :(
 Din punctul meu de vedere CLI câștigă detașat, din punctul de vedere al unui n00b GUI e mai intuitiv, rapid și simplu comparativ cu CLI, bănuiesc că adevărul e oarecum la mijloc, egalitatea între cele două, și evident că-n funcție de cunoștințe și preferințe fiecare are favoritul său!


 CONCLUZIE:
CLI și GUI nu sunt dușmani, sunt complementare, putem folosi una din ele sau pe amândouă după plac și după situație, dacă suntem într-un shell n-are rost să pornim Dolphin sau Audacious pentru a edita un fișier sau pentru a urmări un film sau asculta muzică, după cum dacă suntem în Dolphin n-are rost să deschidem un terminal pentru a edita un fișier pe care-l avem sub cursorul mouse-ului!
 Important e să folosim sistemul cât mai comod pentru noi și să-i lăsăm și pe ceilalți să facă la fel.
 Iar primirea suportului în linie de comandă este inevitabilă, să zicem că solicitantul folosește Unity, sau Gnome3, iar cel ce-i răspunde Kde sau Openbox, nu au amândoi aceleași aplicații, unelte, setări, etc (nu-i poți explica cum se face ceva în systemsettings sau Dolphin din moment ce el are Nautilus), dar linia de comandă este universal valabilă!

miercuri, 7 august 2013

Ranger

 Am scris deja despre mc/ Midnight Commander (http://stressat.blogspot.ro/2012/07/mc-midnight-commander.html), hai să vedem un alt file manager CLI, ranger. Ranger e un manager de fișiere cu interfață ncurses, deci putem folosi tastatura și mouse-ul după plac. Spre deosebire de mc, ranger are doar un panou cu trei coloane, e mai puțin intuitiv și ușor de setat, dar prezintă mult mai multe informații despre directoare și fișiere, extrem de util.
 
 În partea dreaptă vedeți informațiile detaliate afișate de ranger, punctul său forte!

 După instalarea ranger trebuie să copiem fișierele de configurare ale ranger în ~/ config/ranger cu comanda:
ranger --copy-config=all



 Putem naviga între directoare/ fișiere folosind tastele săgeți sau tastele h, j, k, l (în stilul Vim, ca și comenzile), cu G ajungem la final, cu gg la început, / e pentru căutare (search), ? deschide manualul/ meniul help, 1? (apăsăm tasta 1 și apoi ?, adică Shift și / ) arată key bindings, 2? arată lista de comenzi valabile, 3? listează setările, Ctrl+n creează un tab nou, schimbăm tabul cu Tab sau comanda :tab_move număr-tab (:tab_move 2 de exemplu pentru al doilea tab după cel curent), sau chiar cuc clic mouse, închidem un tab cu q sau comanda :quit, închidem direct ranger cu toate taburile cu Q sau :quit!, putem porni direct ranger cu mai multe directoare deschise, cîte unul în fiecare tab cu comanda:
ranger director1 director2 ... directorn
ranger Dropbox Music Documents /home/stressat/Downloads de exemplu va porni automat 4 taburi, fiecare în directorul specificat.
 În screenshotul următor taburile se văd în colțul din dreapta sus, cel activ este în cîmp verde.


sâmbătă, 3 august 2013

Shantz-xwiwrap

 Shantz-winwrap este un utilitar ce folosește mplayer pentru a seta un videoclip sau un screensaver animat ca wallpaper/ mai exact fundal, background. Folosing opțiunea -g (Geometrie) putem modifica geometria (forma) ferestrei și poziția acesteia pe ecran, folosesc astfel xwinwrap pentru a urmări o listă cu videoclipuri.
 Există chiar și un frontend, interfața grafică pygtk cu screensavere incluse, gwinwrap, dar este departe de complexitatea shantz-xwinwrap.

INSTALARE
Arch:
yaourt -S shantz-xwinwrap-bzr gwinwrap-svn
 E posibil ca pachetele să fie în majoritatea distribuțiilor.
 Cu siguranță utilizatorii de Mandriva și Rosa au în mediul MRB ultima versiune de xwinwrap, impecabil împachetată de maestrul Symbianflo!

SINTAXĂ
xwinwrap [-g {w}x{h}+{x}+{y}] [-ni] [-argb] [-fs] [-s] [-st] [-sp] [-a] [-b] [-nf] [-o Coeficient-opacitate] [-sh Formă-geometrică] [-ov] — COMANDĂ ARG1…

Opțiuni:
-g           = Geometrie (w=width, h=height, x=x-coord, y=y-coord. ex: -g 640×480+100+100)
-ni          = Ignoră Input
-d           = Desktop Window Hack
-argb     = RGB
-fs          = Full Screen; dacă din diverse motive imaginea nu e chiar full screen puteți seta asta din opțiunile mplayer (-zoom -x 1376 -y 768 de exemplu)
-s           = Sticky
-st          = Skip Taskbar
-sp         = Skip Pager
-a           = Above
-b           = Below
-nf          = No Focus
-o           = Opacitate între 0 și 1 (ex: -o 0.20) / utilă dacă vreți să se vadă ce aveți pe desktop, dock, shortcuturi, etc.
-sh         = Formă fereastră (Shape of window), dreptunghi, cerc sau oval, implicit este dreptunghi.
-ov          =Set override_redirect flag (For seamless desktop background integration)
-debug   = Enable Debug messages
 În practică, opțiunile cele mai folosite vor fi “fs”, “g”, “ov” și “sh”.

 Deoarece se folosește playerul mplayer, folosim și opțiunile acestuia:
-wid    = comandăm mplayer să se ”atașeze” la o ferestră existentă (X11, browser, etc)
-nosound                  = fără sunet
-ao                              = ieșire audio (alsa, pulse)
-vo                              = ieșire video (gl, gl2, x11, etc)
-loop        = buclă, repetare redare (3 va repeta de 3 ori, 0 este la infinit)
-shuffle                      = aleatoriu, random, va reda din playlist pe sărite
-playlist       = indicăm lista de redare ce va fi folosită
 Shortcut-urile mplayer sunt valabile: Space pentru pauză, Enter pentru următoarea melodie, săgețile stânga/ dreapta și sus/ jos pentru navigare înainte- înapoi 10 secunde și un minut, 9 și 0 pentru volum sonor, m pentru oprire sonor, etc.

EXEMPLE
 Background glmatrix:
xwinwrap -ni -fs -s -st -sp -b -nf -- /usr/lib/xscreensaver/glmatrix -root -window-id WID
 Background cu artificii, fișier video, cu sau fără sunet:
xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -wid WID -nosound -ao alsa -vo gl ~/Downloads/fireworks_pal.mpeg -loop 0
 Background cu redare aleatorie a unor videoclipuri din playlist:
xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0
 Redare fișiere video în fereastră rotundă/ cerc:
xwinwrap -ov -b -g 900x600+200+200 -sh circle -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0


  Redare fișiere video în fereastrătriunghiulară:
xwinwrap -ov -b -g 900x600+200+200 -sh triangle -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0
 Redare fișiere video în fereastră ovală mare:
xwinwrap -ov -b -g 550x400+820+370 -sh circle -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0
 Redare fișiere video în fereastră ovală mică:
xwinwrap -ov -b -g 240x150+1128+618 -sh circle -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0
 Poate pentru unii este doar ceva inutil, mie mi se pare necesar, ultimul screenshot, cel cu imaginea ovală în dreapta jos arată modul cum urmăresc eu videoclipurile.

 Comenzile sunt destul de lungi, celor comozi le recomand aliasuri în .bashrc:
alias glmatrix='xwinwrap -ni -fs -s -st -sp -b -nf -- /usr/lib/xscreensaver/glmatrix -root -window-id WID'
alias xwinwrapf='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -zoom -x 1376 -y 768 -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0'
alias x3='xwinwrap -ov -b -g 240x150+1128+618 -sh circle -- mplayer -wid WID -ao alsa -vo gl -shuffle -playlist '~/Music/Videoclipuri/playlist' -loop 0 '
alias artificii='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -zoom -x 1376 -y 768 -wid WID -nosound ~/Downloads/fireworks_pal.mpeg -loop 0'
alias ninsoare='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -zoom -x 1376 -y 768 -wid WID -nosound ~/Downloads/snowflakes_pal.mpeg -loop 0'
alias foc='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -zoom -x 1376 -y 768 -wid WID -nosound ~/Downloads/crackling_fire_pal.mpeg -loop 0'
alias aurora='xwinwrap -ni -fs -s -st -sp -b -nf -- mplayer -zoom -x 1376 -y 768 -wid WID -nosound ~/Downloads/aural_lights_pal.mpeg -loop 0'


 Pentru a crea un playlist:
locate /cale-către-director-cu-videoclipuri/* > playlist
locate ~Music/Videoclipuri/* > playlist

 Fișiere video interesante, precum cel cu artificiile puteți descărca de aici: http://oasis.vso-software.fr/ConvertXtoDVD%20Free%20Menu%20Templates/

 Sursă: http://wiki.mandrivausers.ro/mandriva/ghid-2011/personalizare_kde#video-background

 GWIWRAP
 Are o bază de animații, putem selecta și fișiere video de pe mașina noastră.




Back to top