Zašto više volimo naredbenu liniju od GUI-a?

Pregledavajući druge članke naišao sam na ovo malo pitanje koje mi je izazvalo veliku zabavu, istina je da je jedna od prvih stvari koju korisnici drugih sistema (osim FreeBSD-a) nailaze na to da ne koristimo GUI-je. Da vam kažem istinu, također mi je bilo prilično znatiželjno na početku mog GNU / Linux putovanja. Moram priznati da s vremenom sada koristim naredbenu liniju mnogo više od bilo kojeg drugog GUI programa, i mnogo puta više volim programe naredbenog retka od složenijih programa sa blistavim GUI-jevima.

Mit

Zapravo ovo nije ništa drugo do urbani mit, jer za razliku od drugih sistema čija se imena ovdje neće spominjati, on je u GNU / Linuxu gdje stvarno imate libertad po izboru. Volio bih da u drugim sistemima postoji svestranost koja ovdje postoji. Ali pogledajmo ovo pobliže, inače mnoge stvari nisu jasne:

Serveri

Svi smo čuli riječ Server, neki vjeruju da su to oni super računari koji pokreću Google ili Amazon, ili onaj u vašoj kompaniji. Ali stvarnost je takva da a Server odgovoriti na a model rada. Ovim izrazom označavamo činjenicu da imamo program koji je dostupan korisnicima (klijenti) i pruži im nešto. Osnovni primjer je apaš, koji se koristi za servir web stranice na Internetu. Ovaj program isporučuje html na klijenti koji to zahtijevaju.

Image server

Ali ne samo da server može biti u super računalima koje Google i mnoge druge kompanije omogućavaju, čak i „najstariji“ laptop može biti Servidor, posebno kada govorimo o slikama. Svi vodimo a Servidor slika na našim prijenosnim računalima kako bi imali funkcionalan zaslon, u ovom slučaju Servidor y el kupac to je ista osoba. Najčešći primjer je X (poznato kao xorg-server u mnogim distribucijama) i njegova nova zamjena Wayland. Nećemo dati detaljno objašnjenje zašto organizacija, niti kako Wayland djeluje, niti filozofije koje stoje iza ovih sjajnih projekata, ali jasno ćemo dati do znanja da upravo zahvaljujući njima možemo računati na web preglednik poput Firefoxa ili Chromea ili mnogih drugih programa.

Upravitelj prozora

Upravitelji prozora rade direktno sa serverom slika, njihov je rad na „nižem“ nivou, budući da upravljaju (oprostite suvišnosti) načinom na koji se prozori kreiraju, modificiraju, zatvaraju. Obično su prilično jednostavni i na njima se grade radna okruženja. Popis je velik, ali ovdje ću ostaviti samo ideju da jesu minimalistički softveri, koji vam omogućavaju prilično osnovnu kontrolu nad serverom slika.

Desktop okruženje

Specijalizovaniji skup softvera koji omogućava ne samo rad servera slika, već i mogućnosti prilagođavanja. Među njima su najstariji i najteži KDE i GNOME, ali imamo i lakša okruženja poput LXDE ili Mate, cimeta itd.

CLI (sučelje naredbenog retka)

Nakon kratkog pogleda na svijet servera slika, sada se ponovo okrećemo našoj temi. CLI, podrazumijeva bilo koji program koji se izvršava naredbenom linijom git, vim, weechat, ili dobro, šta god vam drugo padne na pamet. Možete vidjeti da govorim o programima koji, iako se izvršavaju u naredbenom retku, pokazuju neku vrstu "grafičkog sučelja" poput weechat o vim. Za sve one koji ih nisu probali, preporučujem ih, oni su u osnovi oni koje koristim cijeli dan.

Zašto je CLI bolji od GUI-a

Pokušajmo nešto prilično jednostavno 🙂 Neki dan sam htio raditi na zakrpi Portage (Gentooov menadžer paketa). Kao i svaki dobar suradnički projekt, broj linija koda premašuje 70k. Pokušajte to otvoriti u IDE-u poput NinjaIDE (Portage je napisan na Pythonu) i neće trebati dugo da primijetite kako se ekran počinje učitavati, vaš stroj postaje izuzetno spor (barem moj i7 je to učinio), a ovo samo pokušava otvorite kod i promijenite na zadanu boju «pomoć».

Sada pokušajte učiniti isto sa vim, učitao me za nekoliko hiljaditih dijelova sekunde, a istovremeno je stavio "lijepe" boje i sve ostalo.

CLI je bio mnogo ranije

Neki će ovdje reći da su ti programi drevni, Ja ih zovem robustan. Kad biste mogli vidjeti koliko je sati uloženo u izgradnju emacs, vim, gdbi stotine drugih konzolnih programa, mogu primijetiti da je količina koda i funkcionalnosti toliko velika da su praktički već riješili sve što su trebali. Mnogo GUI za programe koji su već robusni u svom CLI-u, oni nikada neće imati jednaku količinu funkcionalnosti, to jednostavno zato što, na primjer, ako smo napravili karticu za svaki dostupni potkomandu, na primjer git, izgubili bismo se između opcija i to bi bilo kontraproduktivno, jer bi otežavalo rad.

CLI je brži

Magija započinje ključem Tab, ovo nije samo vaš najbolji prijatelj prilikom pregledavanja radnih površina u vašem terminalu, već kada je pravilno konfiguriran, omogućuje vam skraćivanje dugih rečenica na 2 slova i Tab, 3 slova i Tab, ili čak slovo i Tab.

Ali to nije jedina prednost, onih koji smo odvojili vrijeme za učenje vim o emacs Možemo reći da iako je krivulja učenja malo viša od one u IDE-ima danas, na kraju su rezultati produktivnosti nevjerojatni, ne može se zamisliti vrijeme koje se može izgubiti pomicanjem miša. Ako ruke držite na tastaturi u 90% slučajeva ne samo da podučavate koncentraciju, osim toga, činjenica da toliko tipkate po tastaturi čini vas prilično okretnim i produktivnim. I sada se vraćamo na prethodnu točku, budući da smo bili s nama toliko dugo, programi poput ovih već imaju sve funkcionalnosti kojih bi se netko mogao sjetiti, pada mi na pamet prilično uobičajena izreka za nas koji koristimo vim:

Ako koristite više od 4 tipke, možda postoji bolji način.

Jednostavan, ali moćan, vim vam omogućava da radite sve s velikim brojem tipki i mogućim kombinacijama, nikad se ne prestaje učiti, ali istina je i da za njegovo korištenje nije potrebno sve ih znati, za početak je dovoljno oko 10 ili 15 biti produktivniji.

CLI vam daje potpunu kontrolu

Kada neko izvršava operacije mišem ili programe sa servera slika, sve dodatne konfiguracije koje se izvršavaju u trenutku klika nisu uvijek prisutne, to se ne događa s terminalom, ovdje imate apsolutnu snagu onoga izvršava se ili ne, s kojom opcijom ili u kojoj mjeri. Vremenom shvatite da vam treba manje nego što mislite, a to vam pomaže da stvari radite usmjerenije.

I GUI ima svoje

Neću reći da bismo svi trebali uvijek koristiti CLI, ni to nije idealno, i sam gotovo cijelo vrijeme koristim GUI-je, da bih napisao ovaj post koristim svoj Chrome i da bih vidio svoje e-adrese koristim Evolution (mada i ja koristim mutt sasvim nedavno). I pretpostavljam da je ovo najveći mit od svih ... da ljudi misle da ih GNU / Linux samo ukida, sviđa mi se moje radno okruženje, prilično je minimalističko, ali tako mi se sviđa 🙂 I obično imam samo dva ili tri pokrenuti programi, moj Chrome, moj Evolution i moj terminal 🙂

Ovo su neki od razloga zašto mi se toliko sviđaju CLI-ovi i zašto vas pozivam da isprobate, kasnije će možda završiti poput mene koristeći više CLI-a nego GUI-a 😉 Pozdrav


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Anónimo rekao je

    «Kao i svaki dobar suradnički projekt, broj linija koda premašuje 70k. Ovaj dio me učinio previše bučnim. Postoji li tehnička nemogućnost zašto se kôd mora zbiti u istoj datoteci? Zar ne bi bilo bolje razdvojiti ponašanje u različitim entitetima (datoteke / klase / moduli)?
    Ne čini se valjanim razlogom nametati jednu tehnologiju drugoj, ostavljajući po strani prednosti koje se predlažu zbog nedostatka u obliku razvoja. U svakom slučaju, govorim ne znajući na koji se konkretni projekt odnosi, postoji veći razlog koji forsira takav način rada

    1.    ChrisADR rekao je

      zdravo,

      Pa, možda ovo zahtijeva malo objašnjenja, ali ono što nazivam "dobrim projektom" podrazumijeva da broj redova izražava da je zdrava zajednica koja neprestano raste. Postoje projekti sa znatno manjim brojem linija, ali sasvim zdravi u svom razvoju. Da kažem istinu da, prijenos je podijeljen na što više datoteka, ali uvijek je potrebno dijelove grupirati poput biblioteka ili prekidača koji vode do još nekoliko funkcija. Ali prilikom uvoza projekta u mnoge IDE danas, to podrazumijeva da će pročitati sve datoteke u projektu i pokušati staviti ispravan "vizualni" format.

      Nadam se da ću to malo pojasniti 🙂 i hvala na komentaru.
      Saludos

  2.   Anónimo rekao je

    Koristite naredbeni redak? Da, ali samo kada je to primjenjivo. Odnosno kada je udobnije i brže. Na primjer, ako želim instalirati određeni program, prikladnije mi je da upišem ime programa sudo apt install nego da otvorim upravitelj softvera, potražim ga, označim za instaliranje i pritisnem "install". Ali generalno to nije slučaj. Na primjer: ako želim kopirati 20 pjesama koje mi se najviše sviđaju iz jednog direktorija u drugi, super je ugodno raditi Ctrl + Click dok mirno pregledavate ogromnu listu iz upravitelja datoteka, a zatim povucite i ispustite. Još jedan primjer: ako želim particionirati disk, puno je bolje da to učinim putem gparted (program koji izvršava mnoštvo naredbi dok vam grafički prikazuje kako će biti disk) nego da to radite ručno. Lista bi mogla biti beskrajna. GUI mogu (u stvari obično) znatno olakšati rad, uz dodavanje funkcionalnosti koje za datu cli aplikaciju mogu biti nemoguće

    1.    ChrisADR rekao je

      to ovisi o tome koliko vam je ugodno s naredbenom linijom ... na primjer:

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

      s malo magije u bashu možete čak napraviti funkciju koja izvršava istu stvar samo stavljanjem imena pjesme:

      Nešto kao

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

      i spremno! sve svoje pjesme možete premjestiti jednostavnim

      mover cancion1.mp3

      🙂 Što se tiče drugog, iako dijelom GUI čine posao "jednostavnijim" izbjegavajući pamćenje i ponavljanje naredbi, ovo je korisno samo u općim okvirima, kada vam treba nešto specijalizirano, podijeljeno ili bilo koji drugi GUI može biti kratak 🙂 i GUI ne dodaju dodatne funkcionalnosti, oni uzimaju samo one koji postoje u CLI-u (ne sve) i grupiraju ih, ali ih ne kreiraju kreirano

      Saludos

      1.    Anónimo rekao je

        bez obzira na to koliko je proces automatiziran sa:
        move song1.mp3

        tada će nužno biti:
        premjestiti song2.mp3
        move song3.mp3
        .
        .
        .
        move song20.mp3
        ima mnogo dirljivih pjesama ...
        s bilo kojim upraviteljem datoteka .. potrebno je samo 20 klikova i potez povlačenja i ispuštanja. Ne znam, ali barem mi menadžer (Dolphin) omogućava da jednostavno i super brzo (manje od 5 sekundi) sortiram listu od 100 pjesama po imenu, datumu, veličini, oznakama, rangu, albumu, izvođaču, trajanju itd. za mene je to PRODUKTIVNOST i dodavanje funkcionalnosti naredbenom retku.

        Što se tiče drugog primjera .. GParted: OK .. ako vam treba nešto vrlo specijalizirano, poput promjene zadane vrijednosti bajtova po inodeu prilikom formatiranja, trebali biste otići na konzolu .. ali prijatelju, to nije to je normalno. U 99% slučajeva GParted će savršeno zadovoljiti naše potrebe na vrlo jednostavan i vrlo brz način, a barem za mene, to će biti i produktivnost

        Saludos

        1.    ChrisADR rekao je

          Pa, to je primjer automatizacije u najjednostavnijem obliku, kao što ste rekli "ako želim kopirati svojih 20 pjesama koje mi se najviše sviđaju iz jednog direktorija u drugi", sve se to računa s vremenom koje vam treba da "mirno" pregledate svoju listu Nakon što je naručite, kliknete i sl., Terminal to omogućava i još mnogo toga u samo jednom redu, možda oko 0.1 sekunde izvršavanja u vašem procesoru (čak i ako je star), ako vaše oči i miš to mogu prevladati, pa idem na GUI-je 🙂 i nije da sam rekao da ih ne koristim, oni imaju mnogo korisnih stvari, neću to poreći, ali barem sam našao mnogo veću svestranost u terminalu, uz to što mi pomaže da vježbam malo programiranja svaki dan prilikom automatizacije poslova. Vrlo česta izreka među SysAdminima je "ako radite istu stvar više od jednom dnevno, automatizirajte je, ako to radite jednom dnevno duže od dva dana, automatizirajte je, ako to radite čak jednom mjesečno, automatizirajte".

          Ali hej, što se tiče ukusa i boja, svaka ima svoje, ograničavam se na dijeljenje stvari koje mi se sviđaju 🙂 i možda postoji mnogo ljudi koji se "boje" stvari poput emacs-a, vima ili istih terminal, ovim vam objavama samo pokušavam dati malo samopouzdanja i znatiželje kako biste ih mogli isprobati i odlučiti 🙂

          Saludos

          PS: Znam mnoge programere za koje GUI ne rješavaju stvari zbog složenosti koja im je potrebna u svakodnevnom životu, što možda "uobičajeni" korisnik nikada neće vidjeti, ali to ne znači da više "Commons" može koristiti ove alate i dobiti iste svestranije pogodnosti.

          1.    Anónimo rekao je

            I dalje mislim da je za ovaj zadatak (i ​​još mnogo više) potrebno mnogo manje vremena korištenjem upravitelja datoteka nego s naredbenim retkom ... ali hej, kao što kažete postoje ukusi i boje za sve.

            Ne poričem niti se plašim terminala, ali ne vidim ga kao gotovo obaveznu rečenicu, pa sam počeo rekavši "Naredbeni redak da, ali kada je to prikladno"

            Što se tiče programera, ima svega, ali ljestvica očito upućuje na jednu stranu: Pozivam vas da pogledate:

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

            Čini se da "uobičajeni" programeri vide prednosti rada u grafičkom okruženju punom sadržaja u odnosu na one koji se klade na rad s "samo tekstualnim" urednicima

    2.    goriš rekao je

      Na primjer: ako želim kopirati 20 pjesama koje mi se najviše sviđaju iz jednog direktorija u drugi, super je ugodno raditi Ctrl + Click dok mirno pregledavate ogromnu listu iz upravitelja datoteka, a zatim povucite i ispustite.

      Postoje upravitelji datoteka naredbenog retka koji su praktični ili više od grafike, poput Vifm ili Ranger. Također za particioniranje diskova postoje aplikacije naredbenog retka poput cgdisk s e ncurses sučeljem.

      1.    ChrisADR rekao je

        Pa, istina je. Zapravo ne znam zašto se toliko ljudi boji terminala, to je zapravo vrlo robustan i svestran alat, nešto što bi svi trebali probati barem jednom u dubini.

        Hvala na podjeli i pozdravu.

      2.    Anónimo rekao je

        Da, terminal menadžeri datoteka postoje prije grafike. Što se tiče praktičnosti, to ovisi o tome što želite. Bilo koji upravitelj grafičkih datoteka ima kartice, favorite, načine pregleda, pregled, mogućnost naručivanja na 1000 različitih načina, povezivanje terminala, instaliranje dodataka itd, itd, itd. što ih čini mnogo svestranijima od bilo kojeg menadžera tekstualnih datoteka.

        Dobro ne mora nužno biti ružno

    3.    chupy35 rekao je

      samo naučite raditi ono što radite u cliu, a ja vam garantiram da će to biti lakše, a ono što spominjete vrlo lako biste učinili sa rsync-om, a to možete lako učiniti skriptom.

      Preporučujem upravljač datotekama cli pod nazivom ranger koji sadrži sve što spominjete.

      1.    godel rekao je

        Za kopiranje 20 pjesama napravim listu sa "ls * .ogg> top20". Zatim idem na Vim i biram (brišem ono što ne želim) pjesme koje želim. Na kraju uradim "cp $ (cat top20) otrodir" i to je to. Ovo je udobnije od odabira mišem i da se greškom poništava odabir 19 pjesama koje su već bile odabrane.

  3.   Alberto cardona rekao je

    Wonderful !!
    Još uvijek se ne mogu odlučiti za instalaciju Gentoo 🙁 (ja sam u BunsenLabs) Trenutno koristim openbox i koristim nano za svoje Bash skripte
    Ali to me tjera da se upustim u Vim ili Emacs!
    Saludos
    Uživam čitajući vaše postove

    1.    ChrisADR rekao je

      Hvala vam puno Alberto very presretna sam što vam se sviđaju moji članci, uživam u pisanju postova.
      Nadam se da ćete se razveseliti i naravno da jeste, stvar je u tome da uvijek pokušate nešto novo 🙂

  4.   ChrisADR rekao je

    Pa, ovim završavam odgovarati na zadnja dva komentara i zahvalan bih da moderatori ne prihvate više o tome, ovo nikamo ne ide, a ideja nije popuniti listu komentara nizom argumenata u korist ili protiv jednog ili drugog.

    Što se tiče "svestranosti", možda oni koji to misle smatraju da samo GUI imaju dodatke, ali istina je da su terminalni dodaci raznoliki i funkcionalni kao i ljudi koji ih koriste, najjasniji primjer je

    https://vimawesome.com/

    Gotovo nepregledna lista dodataka za vim koji ga čine svestranijim od mnogih IDE-ova ... a kad smo već kod toga, ta veza ne spominje da taj popis uključuje ljude koji koriste IDE-je na Windowsima i Mac-ima, što zapravo govori mnogo bolje Vim govori o Eclipseu, jer ako uporedimo broj ljudi koji koriste Eclipse na tri platforme, Vim se nema čega sramiti što ima zasluženo 4. mjesto.

    Ali ako idemo malo dalje ... da "obični" ljudi nešto koriste, ne kaže da je to nužno dobro, ali vjerojatno bi Windows bio puno bolji od ostalih sistema 🙂 možda je jednostavno da više vole ne naučiti kako nešto koristiti jer više vole jednostavnu opciju ... ili zato što je vaša kompanija na taj način odlučila implementirati standard (Eclipse je standard u mnogim kompanijama, što bi objasnilo velik broj korisnika ... baš kao i Android i Visual Studio, koji su jedino sredstvo za rad sa svojim jezicima ... dok Vim BESPLATAN je izbor onih koji ga koriste)

    . "Ružno" je vrlo subjektivan pojam, mogu smatrati "ružnim" dizajn Qt-a, ili WebKit-a, ili čak Mac OS sučelja ... ali to ne znači da to neko drugi tako vidi, to je samo stvar navike 🙂

    Saludos

    1.    Anónimo rekao je

      Poštujem želju da ne želim dati pravo na odgovor.

      samo za informaciju:
      https://vim.sourceforge.io/download.php

  5.   Claudio rekao je

    Potpuno se slažem s Anonimom, ali u mom slučaju sam jednostavan korisnik, bez dubokog znanja analitičara ili programera. I kao takav, potreban mi je GUI da mi propadne mnoštvo blaga u Linuxu, na primjer danas i kada je 2017. godina, ne postoji GUI aplikacija koja olakšava dijeljenje mapa u Linux mreži, a ja kažem Linux, ne dobivam ih Sa Sambom i Windowsom govorim o neto Linux mreži. Da biste mogli dijeliti u Linux mreži, morate konfigurirati određeni NFS i samo iz naredbenog retka troši vrijeme, a također ne objašnjavam zašto je toliko teško imati GUI koji to olakšava kao što se to događa u sustavu Windows.
    Prema ChrisADR-u "Ja sam mladi programer" i vidite da znate puno o toj temi, da li biste trebali razviti GUI aplikaciju koja olakšava ono što sam upravo objasnio ili je vaš čisti naslov i hvalisanje? Isto je kao da je liječnik dao mišljenje o tome kako je bolje obaviti operativni zahvat, a da to nikada nije učinio. «Pingovi se vide na terenu» trebali biste razviti GUI aplikaciju prije nego što date svoje mišljenje iz mjesta «programera softvera», a ako je bolje ili ne koristiti terminal, morate se postaviti na mjesto onoga tko koristi Linux i ko ga koristi. Nadamo se da možete vidjeti članak ChrisADR-a koji predstavlja i dijeli njegovu GUI aplikaciju za dijeljenje datoteka na Linux mreži. Trenutno ih nema, osim ako Sambu koristite samo za Windows dijeljenje.

    1.    Guillermo rekao je

      Stvaranje programa nije lako jedno popodne, potreban je napor od najmanje nekoliko tjedana, a što je još gore, tada se trudimo godinama popravljati pogreške, ažurirati ga zajedno s novim knjižnicama funkcija zbog kojih su prethodno korištene zastarjele. , ambalaža za različite distribucije, ...
      Ali takođe, ako već imate SAMBA koji također možete koristiti između dva GNU / Linuxa bez potrebe za bilo kojim Windowsom, zašto želite koristiti NFS rješenje?
      Čak i ako priručnici koje vidite na mreži govore o Linuxu i Windowsu, jednostavno slijedite upute za dijeljenje mape desde linux a zatim da se povežete na drugu mrežnu fasciklu desde linux takođe
      Čini se da Ubuntu 16.04 još uvijek ima laku implementaciju ove teme: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/