De ce preferăm linia de comandă decât GUI-urile?

Revizuind alte articole am dat peste această mică întrebare care mi-a provocat o mulțime de distracție, este adevărat că unul dintre primele lucruri pe care utilizatorii altor sisteme (cu excepția FreeBSD) le primesc în față este că nu folosim interfețele grafice. Ca să spun adevărul, mi s-a părut destul de curios și la începutul călătoriei mele GNU / Linux. Trebuie să recunosc că, de-a lungul timpului, folosesc linia de comandă mult mai mult decât orice alt program GUI și de multe ori prefer programele din linia de comandă decât programele mai elaborate cu interfețe GUI orbitoare.

Mitul

De fapt, acesta nu este altceva decât un mit urban, pentru că, spre deosebire de alte sisteme ale căror nume nu vor fi menționate aici, este în GNU / Linux unde aveți cu adevărat Libertad la alegere. Îmi doresc ca în alte sisteme să existe versatilitatea care există aici. Dar să aruncăm o privire mai aprofundată asupra acestei chestiuni, altfel multe lucruri nu sunt clare:

servere

Cu toții am auzit cuvântul Server, unii cred că sunt acele super-computere care alimentează Google sau Amazon sau cel din compania dvs. Dar realitatea este că a server de răspunde la o model de lucru. Folosim acest termen pentru a ne referi la faptul că avem un program disponibil utilizatorilor (clienții) și le dă ceva. Un exemplu de bază este Apache, care este folosit pentru servi pagini web pe internet. Acest program oferă html către clienții care o cer.

Server de imagini

Dar nu numai un server poate fi pe supercalculatoarele pe care Google și multe alte companii le fac posibile, chiar și „cel mai vechi” laptop poate fi un serverul, mai ales când vorbim despre imagini. Toți conducem un serverul de imagini din laptopurile noastre pentru a putea avea un ecran funcțional, în acest caz serverul și client sunt aceeași persoană. Cel mai frecvent exemplu este X (cunoscut sub numele de xorg-server în multe distribuții) și noul său înlocuitor Wayland. Nu vom oferi o explicație detaliată a motivului pentru care organizația sau modul în care funcționează Wayland sau filosofiile care există în spatele acestor proiecte grozave, dar vom clarifica faptul că datorită lor putem avea un browser web precum Firefox sau Chrome sau multe alte programe.

Manager ferestre

Managerii de ferestre lucrează direct cu serverul de imagine, munca lor este de un nivel „mai scăzut”, deoarece gestionează (iertă redundanța) modul în care sunt create, modificate, închise ferestrele. Acestea sunt de obicei destul de simple și pe acestea se construiesc medii desktop. Lista este mare, dar voi lăsa aici doar ideea că sunt programe minimaliste, care permit un control destul de simplu al serverului de imagini.

Mediu desktop

Un set de software mai specializat, care nu numai că permite funcționarea serverului de imagini, dar oferă și capacități de personalizare. Dintre acestea, cele mai vechi și mai grele sunt KDE și GNOME, dar avem și medii mai ușoare precum LXDE sau Mate, Cinnamon etc.

CLI (Interfață de linie de comandă)

După o scurtă recenzie a lumii serverelor de imagini, ne întoarcem acum la subiectul nostru. CLI, implică tot acel program care este executat de linia de comandă git, vim, weechat, sau bine, orice altceva îți vine în minte. Puteți vedea că vorbesc despre programe care, deși sunt executate în linia de comandă, arată un fel de „interfață grafică” precum weechat o vim. Pentru toți cei care nu le-au încercat, le recomand, sunt practic cele pe care le folosesc toată ziua.

De ce CLI este mai bun decât GUI

Să încercăm ceva destul de simplu 🙂 Zilele trecute am vrut să lucrez la un patch Portage (managerul de pachete Gentoo). Ca orice proiect bun de colaborare, numărul de linii de cod depășește 70k. Încercați să deschideți acest lucru într-un IDE cum ar fi NinjaIDE (Portage este scris în Python) și veți observa în curând că, pe măsură ce ecranul începe să se încarce, mașina dvs. devine extrem de lentă (cel puțin i7-ul meu a făcut-o) și asta încearcă doar să deschideți codul și treceți la culoarea implicită „ajutor”.

Acum încercați să faceți același lucru cu vim, m-a încărcat într-o chestiune de miimi de secundă și, în același timp, a pus culorile „drăguțe” și orice altceva.

CLI a fost cu mult înainte

Unii aici vor spune că aceste programe sunt vechi, Îi numesc robust. Dacă ați putea vedea numărul de ore investite în construcție emacs, vim, gdb, și sute de alte programe de consolă, pot observa că cantitatea de cod și funcționalitate este atât de mare încât practic au rezolvat deja tot ce aveau nevoie pentru a rezolva. Mulți GUI Pentru programele care sunt deja robuste în CLI, nu vor avea niciodată aceeași cantitate de funcționalitate, pur și simplu pentru că, dacă am crea o filă pentru fiecare subcomandă disponibilă, de exemplu git, ne-am pierde între opțiuni și ar fi contraproductiv, deoarece ar îngreuna munca.

CLI este mai rapid

Magia începe cu cheia Tab, acesta nu este doar cel mai bun prieten al tău atunci când răsfoiți desktop-urile din terminalul tău, dar atunci când este configurat corect, îți permite să scurtezi propozițiile lungi la 2 litere și o filă, 3 litere și o filă, sau chiar o literă și o Tab.

Dar acesta nu este singurul avantaj, cei dintre noi care ne-am luat timp să învățăm vim o emacs Putem spune că, deși curba de învățare este puțin mai mare decât cea a IDE-urilor din zilele noastre, în cele din urmă rezultatele productivității sunt uimitoare, nu ne putem imagina timpul care poate fi pierdut atunci când mutați un mouse. Având mâinile pe tastatură 90% din timp, nu numai că predă concentrarea, în plus, faptul de a tasta atât de mult pe tastatură te face destul de agil și productiv. Și acum ne întoarcem la punctul anterior, după ce ne-am alăturat atât de mult timp, astfel de programe au deja toate funcționalitățile la care cineva s-ar putea gândi, ne vine în minte o zicală destul de comună pentru cei dintre noi care folosim vim:

Dacă utilizați mai mult de 4 taste, este posibil să existe o modalitate mai bună.

Simplu, dar puternic, vim vă permite să faceți totul cu numărul mare de taste și combinații posibile, nu se oprește niciodată învățarea, dar este, de asemenea, adevărat că, pentru a-l utiliza, nu este necesar să le cunoașteți pe toate, aproximativ 10 sau 15 sunt suficiente pentru a începe fii mai productiv.

CLI vă oferă control complet

Când se execută operații cu mouse-ul sau programe de pe serverul de imagine, toate configurațiile suplimentare care sunt executate în momentul clicului nu sunt întotdeauna prezente, acest lucru nu se întâmplă cu terminalul, aici aveți puterea absolută a ceea ce este executat sau nu, cu ce opțiune sau în ce măsură. În timp îți dai seama că ai nevoie de mai puțin decât crezi și asta te ajută să faci lucrurile într-un mod mai concentrat.

GUI are și el propriul său lucru

Nu am de gând să spun că ar trebui să folosim CLI cu toții întotdeauna, nici acest lucru nu este ideal, eu însumi folosesc GUI aproape tot timpul, pentru a scrie această postare folosesc Chrome-ul meu și pentru a-mi vedea e-mailurile folosesc Evolution (deși folosesc și eu mutt destul de recent). Și cred că acesta este cel mai mare mit dintre toate ... că oamenii cred că GNU / Linux doar le pune capăt, îmi place mediul meu desktop, este destul de minimalist, dar îmi place așa 🙂 Și de obicei am doar două sau trei programe care rulează, Chrome, Evolution și terminalul meu 🙂

Acestea sunt câteva dintre motivele pentru care îmi plac atât de mult CLI-urile și de ce vă invit să le încercați, mai târziu ar putea ajunge ca mine folosind mai multe CLI-uri decât GUI than Salutări


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   anonim el a spus

    «Ca orice proiect de colaborare bun, numărul de linii de cod depășește 70k. Această parte m-a făcut prea zgomotos. Există o imposibilitate tehnică de ce codul trebuie compactat în același fișier? Nu ar fi mai bine să separați comportamentul în diferite entități (fișiere / clase / module)?
    Nu pare a fi un motiv valabil pentru a impune o tehnologie peste alta, pentru a lăsa deoparte avantajele pe care le propune din cauza lipsei sub formă de dezvoltare. În orice caz, vorbesc fără să știu la ce proiect anume se referă, există o cauză mai mare care forțează acel mod de lucru

    1.    ChrisADR el a spus

      Buna,

      Ei bine, poate că acest lucru necesită un pic de explicații, dar ceea ce eu numesc „proiect bun” implică faptul că numărul de linii exprimă faptul că este o comunitate sănătoasă care continuă să crească. Există proiecte cu un număr mult mai mic de linii, dar destul de sănătoase în dezvoltarea lor. Pentru a spune adevărul, da, portajul este împărțit în cât mai multe fișiere posibil, dar este întotdeauna necesar să păstrați porțiuni grupate împreună, cum ar fi biblioteci, sau comutatoare care duc la destul de multe alte funcții. Dar atunci când importați un proiect în multe IDE astăzi, asta implică faptul că acesta va citi toate fișierele din proiect și va încerca să pună formatul „vizual” corect.

      Sper să o fac un pic mai clară 🙂 și mulțumesc pentru comentarii.
      În ceea ce priveşte

  2.   anonim el a spus

    Folosiți linia de comandă? Da, dar numai atunci când este cazul. Adică atunci când este mai confortabil și mai rapid. De exemplu, dacă vreau să instalez un anumit program, îmi este mai convenabil să introduc sudo apt install programname decât să deschid un manager de software, să-l căutez, să îl marcați pentru instalare și să apăsați „instalare”. Dar, în general, acest lucru nu este cazul. De exemplu: dacă vreau să copiez cele 20 de melodii care îmi plac cel mai mult dintr-un director în altul, este foarte confortabil să faceți Ctrl + Click în timp ce examinați cu calm o listă imensă dintr-un manager de fișiere și apoi trageți și fixați. Un alt exemplu: dacă vreau să partiționez un disc, este mult mai bine să îl fac prin gparted (un program care execută o multitudine de comenzi în timp ce vă arată grafic cum va fi discul) decât să îl faceți manual. Lista ar putea fi nesfârșită. GUI pot (de fapt, de obicei) să facă munca mult mai ușoară, pe lângă adăugarea de funcționalități care pentru o anumită aplicație cli ar putea fi imposibile

    1.    ChrisADR el a spus

      Ei bine, asta depinde de cât de confortabil ești cu linia de comandă ... de exemplu:

      find dir/musica -name "archivo" -exec grep cp {} dir/nuevo \;

      cu un pic de magie în bash puteți face chiar și o funcție care execută același lucru doar punând numele melodiei:

      Ceva asemănător cu

      mover(){
      find dir/musica -name $1 -exec grep cp {} dir/nuevo \;
      }

      și gata! îți poți muta toate melodiile cu un simplu

      mover cancion1.mp3

      🙂 În ceea ce privește al doilea, deși parțial GUI-urile fac lucrarea „mai simplă” evitând amintirea și repetarea comenzilor, acest lucru este util numai în cadrul general, atunci când aveți nevoie de ceva specializat, gparted sau orice altă GUI poate fi scurtă 🙂 și GUI-urile nu adaugă funcționalități suplimentare, le iau doar pe cele care există în CLI (nu pe toate) și le grupează, dar nu le creează

      În ceea ce priveşte

      1.    anonim el a spus

        indiferent cât de mult este automat procesul cu:
        move song1.mp3

        atunci, neapărat, vor exista:
        mutați melodia2.mp3
        move song3.mp3
        .
        .
        .
        move song20.mp3
        sunt multe melodii în mișcare ...
        cu orice manager de fișiere .. durează doar 20 de clicuri și un gest drag & drop. Nu știu, dar cel puțin managerul meu (Dolphin) îmi permite să sortez simplu și foarte rapid (mai puțin de 5 secunde) o listă de 100 de melodii după nume, dată, dimensiune, etichete, clasament, album, artist, durată etc. pentru mine, aceasta este PRODUCTIVITATE și, de asemenea, adaugă funcționalitate liniei de comandă.

        În ceea ce privește celălalt exemplu .. GParted: OK .. dacă aveți nevoie de ceva foarte specializat, cum ar fi modificarea valorii implicite a octeților per inod la formatare, ar trebui să mergeți la consolă .. dar prieten, asta nu este Este normal. 99% din timp GParted va satisface perfect nevoile noastre într-un mod foarte simplu și foarte rapid și, cel puțin pentru mine, că și productivitatea

        În ceea ce priveşte

        1.    ChrisADR el a spus

          Ei bine, acesta este un exemplu de automatizare în forma sa cea mai simplă, așa cum ați spus „dacă vreau să-mi copiez cele 20 de melodii care îmi plac cel mai mult dintr-un director în altul”, toate acestea contează cu timpul necesar pentru „calm”. revizuiți lista după ce ați comandat-o și, de asemenea, faceți clic și etc, terminalul permite asta și multe altele într-o singură linie, poate aproximativ 0.1 secunde de execuție în procesorul dvs. (chiar dacă este vechi), dacă ochii și mouse-ul pot depăși acest lucru Ei bine, mă duc la GUI 🙂 și nu că am spus că nu le folosesc, au multe lucruri utile, nu o voi nega, dar cel puțin am găsit o versatilitate mult mai mare în terminal, pe lângă faptul că mă ajuta să practic câte o mică programare în fiecare zi când automatizez joburile. O vorbă foarte obișnuită printre SysAdmins este „dacă faci același lucru mai mult de o dată pe zi, automatizează-l, dacă o faci o dată pe zi timp de mai mult de două zile, automatizează-l, dacă o faci chiar și o dată pe lună, automatizează-l . "

          Dar hei, în ceea ce privește gusturile și culorile, fiecare are propriile sale, mă limitez să împărtășesc lucrurile care îmi plac 🙂 și poate sunt mulți oameni care se „tem” de lucruri precum emacs, vim sau același terminal, Cu aceste postări, încerc doar să vă ofer un pic de încredere și curiozitate, astfel încât să puteți încerca să decideți 🙂

          În ceea ce priveşte

          PS: Cunosc mulți dezvoltatori pentru care GUI-urile nu rezolvă lucrurile din cauza complexității de care au nevoie în fiecare zi, pe care poate un utilizator „comun” nu o va vedea niciodată, dar asta nu înseamnă că mai mulți utilizatori „Commons” pot utilizați aceste instrumente și obțineți aceleași beneficii mai versatile.

          1.    anonim el a spus

            Încă cred că pentru această sarcină (și multe altele) este nevoie de mult mai puțin timp folosind un manager de fișiere decât cu linia de comandă ... dar hei, după cum spuneți, există gusturi și culori pentru toată lumea.

            Nu neg și nu mă tem de terminal, dar nu îl văd ca o propoziție aproape obligatorie, așa că am început spunând „Linia de comandă da, dar când este cazul”

            În ceea ce privește dezvoltatorii, există de toate, dar scara este în mod clar îndreptată spre o parte: vă invit să aruncați o privire la:

            https://pypl.github.io/IDE.html

            Se pare că dezvoltatorii „obișnuiți” văd avantajele de a lucra într-un mediu grafic plin de facilități în comparație cu cei care pariază să lucreze cu editori „numai text”.

    2.    arzi el a spus

      De exemplu: dacă vreau să copiez cele 20 de melodii care îmi plac cel mai mult dintr-un director în altul, este foarte confortabil să faceți Ctrl + Click în timp ce examinați cu calm o listă imensă dintr-un manager de fișiere și apoi trageți și fixați.

      Există manageri de fișiere din linia de comandă care sunt la fel de practice sau mai mult decât grafica, cum ar fi Vifm sau Ranger. De asemenea, pentru partiționarea discurilor există aplicații pe linia de comandă, cum ar fi cgdisk cu o interfață e ncurses.

      1.    ChrisADR el a spus

        Ei bine, este adevărat 🙂 Nu prea știu de ce atât de mulți oameni se tem de terminal, este de fapt un instrument foarte robust și versatil, ceva pe care toată lumea ar trebui să-l încerce măcar o dată în profunzime.

        Vă mulțumim pentru distribuire și salutări.

      2.    anonim el a spus

        Da, administratorii de fișiere de terminal există înainte de grafică. În ceea ce privește practicitatea, depinde de ceea ce vrei. Orice manager de fișiere grafice este prevăzut cu file, favorite, moduri de vizualizare, previzualizare, posibilitatea de a-l comanda în 1000 de moduri diferite, de a conecta un terminal, de a instala pluginuri, etc, etc etc. ceea ce le face mult mai versatile decât orice manager de fișiere text.

        Binele nu trebuie neapărat să fie urât

    3.    chupy35 el a spus

      doar că înveți să faci ceea ce faci în cli și îți garantez că va fi mai ușor, ceea ce menționezi foarte ușor ai face cu rsync și îl poți face cu ușurință un script.

      Vă recomand un manager de fișiere cli numit ranger care conține tot ce menționați.

      1.    godel el a spus

        Pentru a copia cele 20 de melodii fac o lista cu "ls * .ogg> top20". Apoi, merg la Vim și selectez (ștergând ceea ce nu vreau) melodiile pe care le doresc. La final fac „cp $ (cat top20) otrodir” și gata. Acest lucru este mai convenabil decât selectarea cu mouse-ul și că cele 19 melodii care au fost deja alese sunt deselectate din greșeală.

  3.   Alberto cardona el a spus

    Minunat!!
    Încă nu mă pot decide să instalez Gentoo 🙁 (sunt la BunsenLabs) În prezent folosesc openbox și folosesc nano pentru scripturile mele Bash
    Dar mă face să vreau să mă aventurez în Vim sau Emacs!
    În ceea ce priveşte
    Îmi place să vă citesc postările

    1.    ChrisADR el a spus

      Mulțumesc foarte mult Alberto 🙂 Sunt foarte fericit că îți plac articolele mele, îmi place să scriu postările.
      Sper să vă înveseliți și, bineînțeles, să faceți acest lucru, este să încercați întotdeauna ceva nou 🙂

  4.   ChrisADR el a spus

    Ei bine, cu asta termin să răspund la ultimele două comentarii și aș aprecia că moderatorii nu acceptă mai multe despre asta, acest lucru nu merge nicăieri și ideea este să nu umpleți lista de comentarii cu o serie de argumente în favoarea sau împotriva uneia sau alteia.

    În ceea ce privește „versatilitatea”, poate cei care cred acest lucru consideră că numai interfețele grafice au plugin-uri, dar adevărul este că pluginurile terminale sunt la fel de variate și funcționale ca oamenii care le folosesc, cel mai clar exemplu este

    https://vimawesome.com/

    O listă aproape interminabilă de plugin-uri pentru vim care îl fac mai versatil decât multe IDE ... și vorbind despre asta, link-ul nu menționează că lista respectivă include persoanele care utilizează IDE-uri pe Windows și Mac, care de fapt vorbește mult mai bine despre Vim vorbește despre Eclipse, deoarece dacă comparăm numărul de oameni care folosesc Eclipse pe cele trei platforme, Vim nu are nimic de rușinat că are un meritat locul 4.

    Dar mergând un pic mai departe ... că oamenii „obișnuiți” folosesc ceva nu spune că acest lucru este neapărat bun, dar probabil Windows ar fi mult mai bun decât alte sisteme 🙂 poate doar preferă să nu învețe să folosească ceva pentru că preferă opțiunea ușoară ... sau pentru că compania dvs. a decis astfel să implementeze standardul (Eclipse este standardul în multe companii, ceea ce ar explica numărul mare de utilizatori ... la fel ca Android și Visual Studio, care sunt singurele înseamnă să lucrezi cu limbile lor respective ... în timp ce Vim este o alegere GRATUITĂ a celor care îl folosesc)

    . „Urât” este un termen foarte subiectiv, pot considera „urât” designul Qt, sau WebKit sau chiar al interfeței Mac OS ... dar asta nu înseamnă că altcineva o vede așa, este doar o chestiune de obicei 🙂

    În ceea ce priveşte

    1.    anonim el a spus

      Respect dorința de a nu dori să dau dreptul la replică.

      doar pentru informatii:
      https://vim.sourceforge.io/download.php

  5.   Claudio el a spus

    Sunt total de acord cu Anonymous, dar în cazul meu, sunt un simplu utilizator, fără cunoștințele profunde ale unui analist sau programator. Și, ca atare, am nevoie de o interfață grafică care să îmi dea greș multe comori din Linux, de exemplu astăzi și fiind anul 2017, nu există nicio aplicație GUI care să faciliteze partajarea folderelor într-o rețea Linux și spun Linux, nu le primesc Cu Samba și Windows, vorbesc despre o rețea pur Linux. Pentru a putea partaja într-o rețea Linux trebuie să configurați un anumit NFS și numai din linia de comandă, timpul este pierdut și, de asemenea, nu explic de ce este atât de dificil să aveți o interfață grafică care să o ușureze așa cum se întâmplă în Windows.
    Potrivit lui ChrisADR „Sunt un tânăr dezvoltator de software” și vedeți că știți multe despre acest subiect, ar trebui să dezvoltați o aplicație GUI care să faciliteze ceea ce tocmai am explicat sau a dvs. este un titlu pur și laudă? Este la fel ca și cum un medic și-ar fi dat avizul despre cum este mai bine să efectuați o intervenție chirurgicală, fără să fi făcut vreodată vreuna. „Vedeți pingos-urile pe teren” ar trebui să dezvoltați o aplicație GUI înainte de a vă da opinia din locul dvs. de „dezvoltator de software” și dacă este mai bine sau nu să utilizați terminalul, trebuie să vă puneți în locul celui care folosește Linux și pentru cine îl folosește. Sperăm că puteți vedea un articol de ChrisADR, care prezintă și partajează aplicația sa GUI, pentru partajarea fișierelor pe o rețea Linux. Nu există niciunul în acest moment, cu excepția cazului în care utilizați Samba doar pentru partajarea Windows.

    1.    Guillermo el a spus

      Crearea unui program nu este ușoară într-o după-amiază, necesită un efort de câteva săptămâni cel puțin și ceea ce este mai rău, atunci avem efortul de ani de zile să remediem erorile, actualizându-l împreună cu noile biblioteci de funcții care îi fac pe cele utilizate anterior să cadă. , ambalajul pentru diferite distribuții, ...
      Dar, de asemenea, dacă aveți deja SAMBA pe care îl puteți utiliza și între două GNU / Linux fără a fi nevoie de niciun Windows, de ce doriți să utilizați soluția NFS?
      Chiar dacă manualele pe care le vedeți online vorbesc despre Linux și Windows, pur și simplu urmați instrucțiunile pentru a partaja un folder desde linux și apoi pentru a vă conecta la un alt folder de rețea desde linux de asemenea.
      Se pare că Ubuntu 16.04 are încă o implementare ușoară a acestei teme: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/