Hvorfor foretrekker vi kommandolinjen fremfor GUI-ene?

Gjennomgang av andre artikler jeg kom over dette lille spørsmålet som forårsaket meg mye moro, er det sant at en av de første tingene som brukere av andre systemer (unntatt FreeBSD) får i ansiktet, er at vi ikke bruker GUI-ene. For å si sannheten virket det også ganske nysgjerrig for meg i begynnelsen av GNU / Linux-reisen. Jeg må innrømme at over tid bruker jeg nå kommandolinjen mye mer enn noe annet GUI-program, og mange ganger foretrekker jeg kommandolinjeprogrammer framfor mer forseggjorte programmer med blendende GUI-er.

Myten

Egentlig er dette ikke noe mer enn en urbane myte, for i motsetning til andre systemer hvis navn ikke vil bli nevnt her, er det i GNU / Linux hvor du virkelig har frihet av valg. Jeg skulle ønske at det i andre systemer var allsidigheten som finnes her. Men la oss se nærmere på denne saken, ellers er mange ting ikke klare:

servere

Vi har alle hørt ordet Server, noen mener at de er de super-datamaskinene som driver Google eller Amazon, eller den i selskapet ditt. Men virkeligheten er at en serveren svare på en arbeidsmodell. Vi bruker dette begrepet for å referere til det faktum at vi har et program som er tilgjengelig for brukere (kunder) og gir dem noe. Et grunnleggende eksempel er Apache, som brukes til tjener nettsider på internett. Dette programmet leverer html til kunder som ber om det.

Bildeserver

Men ikke bare en server kan være i superdatamaskiner som Google og mange andre selskaper muliggjør, selv den "eldste" bærbare datamaskinen kan være en server, spesielt når vi snakker om bilder. Vi kjører alle en server bilder i bærbare datamaskiner for å ha en funksjonell skjerm, i dette tilfellet server og kunde de er den samme personen. Det vanligste eksemplet er X (kjent som xorg-server i mange distribusjoner) og den nye erstatningen Wayland. Vi kommer ikke til å gi en detaljert forklaring på hvorfor organisasjonen, eller hvordan Wayland fungerer, eller filosofiene som eksisterer bak disse flotte prosjektene, men vi skal gjøre det klart at det er takket være dem at vi kan ha en nettleser som Firefox eller Chrome, eller mange andre programmer.

Vindussjef

Vindusbehandlere jobber direkte med bildeserveren, deres arbeid er på et "lavere" nivå, siden de klarer (tilgi redundansen) hvordan vinduene blir opprettet, modifisert, lukket. De er vanligvis ganske enkle og skrivebordsmiljøer er bygget på disse. Listen er stor, men jeg vil bare legge igjen ideen om at de er minimalistiske programvare, som tillater å ha en ganske grunnleggende kontroll over bildeserveren.

Skrivebordsmiljø

Et mer spesialisert programvare som ikke bare muliggjør bildeserverdrift, men som også gir muligheter for tilpasning. Blant disse er de eldste og tyngste KDE og GNOME, men vi har også lettere miljøer som LXDE eller Mate, kanel, etc.

CLI (kommandolinjegrensesnitt)

Etter en kort titt på verden av bildeservere, går vi nå til temaet vårt igjen. CLI, innebærer et hvilket som helst program som kjøres av kommandolinjen, enten git, vim, weechat, eller vel, hva annet du kommer opp i. Du kan se at jeg snakker om programmer som, selv om de kjøres på kommandolinjen, viser et slags "grafisk grensesnitt" som weechat o vim. For alle de som ikke har prøvd dem, anbefaler jeg dem, de er i utgangspunktet de jeg bruker hele dagen.

Hvorfor CLI er bedre enn GUI

La oss prøve noe ganske enkelt 🙂 Her om dagen ville jeg jobbe med en lapp til Portage (Gentoos pakkeleder). Som ethvert godt samarbeidsprosjekt, overstiger antall kodelinjer 70k. Prøv å åpne det i en IDE som NinjaIDE (Portage er skrevet i Python), og du vil snart merke at når skjermen begynner å lastes, blir maskinen din ekstremt treg (i det minste gjorde i7-en min), og dette prøver bare å åpne koden og bytt til standardfargen på «hjelp».

Prøv nå å gjøre det samme med vimDet lastet meg i løpet av millisekunder, og samtidig satte det de "pene" fargene og alt annet.

CLI har vært lenge før

Noen her vil si at disse programmene er antiguos, Jeg kaller dem robust. Hvis du kunne se antall timer investert i bygningen emacs, vim, gdb, og hundrevis av andre konsollprogrammer, kan du legge merke til at mengden kode og funksjoner er så stor at de praktisk talt allerede har løst alt de trengte å løse. Mange GUI for programmer som allerede er robuste i deres CLI, vil de aldri ha like mye funksjonalitet, dette bare fordi hvis vi for eksempel laget en fane for hver tilgjengelige underkommando git, ville vi miste oss mellom alternativene, og det ville være kontraproduktivt, fordi det ville gjøre det vanskelig å jobbe.

CLI er raskere

Magien begynner med nøkkelen Tab, dette er ikke bare din beste venn når du surfer på stasjonære datamaskiner i terminalen din, men når den er riktig konfigurert, lar den deg forkorte lange setninger til 2 bokstaver og en Tab, 3 bokstaver og en Tab, eller til og med en bokstav og en Tab .

Men dette er ikke den eneste fordelen, de av oss som har tatt oss tid til å lære vim o emacs Vi kan si at selv om læringskurven er litt høyere enn IDE-ene i disse dager, til slutt er produktivitetsresultatene fantastiske, man kan ikke forestille seg tiden som kan gå tapt når man beveger en mus. Å ha hendene på tastaturet 90% av tiden lærer ikke bare konsentrasjon, i tillegg gjør det å skrive så mye på tastaturet deg ganske smidig og produktiv. Og nå kommer vi tilbake til forrige punkt, etter å ha vært med oss ​​så lenge, har programmer som disse allerede alle funksjonene som noen kunne tenke seg, et ganske vanlig ordtak for de av oss som bruker vim kommer til å tenke:

Hvis du bruker mer enn 4 taster, kan det være en bedre måte.

Enkel, men kraftig, vim lar deg gjøre alt med det store antallet taster og mulige kombinasjoner, man slutter aldri å lære, men det er også sant at det ikke er nødvendig å kjenne dem alle for å kunne bruke det, omtrent 10 eller 15 er nok til å begynne å bli mer produktiv.

CLI gir deg full kontroll

Når man utfører operasjoner med musen, eller programmer fra bildeserveren, er ikke alltid alle ekstra konfigurasjonene som utføres i øyeblikket du klikker, til stede, dette skjer ikke med terminalen, her har du den absolutte kraften til det den blir utført eller ikke, med hvilket alternativ eller i hvilken grad. Over tid innser du at du trenger mindre enn du tror, ​​og det hjelper deg å gjøre ting på en mer fokusert måte.

GUI har også sin egen ting

Jeg kommer ikke til å si at vi alle sammen skal bruke CLI alltid, det er heller ikke ideelt, jeg bruker GUI nesten hele tiden, for å skrive dette innlegget bruker jeg Chrome, og for å se e-postene mine bruker jeg Evolution (selv om jeg også bruke mutt ganske nylig). Og jeg antar at dette er den største myten av alle ... at folk tror at GNU / Linux bare avslutter dem, jeg liker skrivebordsmiljøet mitt, det er ganske minimalistisk, men jeg liker det på den måten 🙂 Og jeg har vanligvis bare to eller tre programmer som kjører, Chrome, Evolution og terminal 🙂

Dette er noen av grunnene til at jeg liker CLI-ene så godt og hvorfor jeg inviterer deg til å prøve dem, de kan senere ende opp som at jeg bruker flere CLI-er enn GUI-er. Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   anonym sa

    «Som et hvilket som helst godt samarbeidsprosjekt, overstiger antall kodelinjer 70k. Denne delen gjorde meg for mye støy. Er det teknisk umulig hvorfor koden må komprimeres i samme fil? Ville det ikke vært bedre å skille oppførsel i forskjellige enheter (filer / klasser / moduler)?
    Det ser ikke ut til å være en gyldig grunn til å pålegge den ene teknologien fremfor den andre, å legge bort fordelene som man foreslår på grunn av mangel på utviklingsform. I alle fall snakker jeg uten å vite hvilket prosjekt det refererer til, det er en større årsak som tvinger den måten å jobbe på

    1.    ChrisADR sa

      Hei,

      Vel, dette krever kanskje litt forklaring, men det jeg refererer til som et "godt prosjekt" innebærer at antall linjer uttrykker at det er et sunt samfunn som fortsetter å vokse. Det er prosjekter med et mye mindre antall linjer, men ganske sunne i utviklingen. For å si sannheten ja, er portage delt inn i så mange filer som mulig, men det er alltid nødvendig å holde deler gruppert som biblioteker, eller brytere som fører til ganske mange andre funksjoner. Men når du importerer et prosjekt til mange IDEer i dag, betyr det at det vil lese alle filene i prosjektet og prøve å sette riktig "visuelt" format.

      Jeg håper å gjøre det litt tydeligere 🙂 og takk for at du kommenterer.
      Hilsen

  2.   anonym sa

    Bruker du kommandolinjen? Ja, men bare når det er aktuelt. Det vil si når det er mer behagelig og raskere. For eksempel, hvis jeg vil installere et bestemt program, er det mer praktisk for meg å skrive sudo apt install programnavn enn å åpne en programvarebehandler, søke etter det, merke det for installasjon og trykke "installer". Men generelt er dette ikke tilfelle. For eksempel: hvis jeg vil kopiere de 20 sangene jeg liker best fra en katalog til en annen, er det superkomfortabelt å gjøre Ctrl + Click mens du rolig går gjennom en enorm liste fra en filbehandling og deretter drar og slipper. Et annet eksempel: Hvis jeg vil partisjonere en disk, er det mye bedre å gjøre det gjennom gparted (et program som utfører en rekke kommandoer mens du viser deg grafisk hvordan disken vil være) enn å gjøre det manuelt. Listen kan være uendelig. GUI-er kan (faktisk vanligvis) gjøre arbeidet mye enklere, i tillegg til å legge til funksjoner som for en gitt cli-applikasjon kan være umulig

    1.    ChrisADR sa

      vel det avhenger av hvor komfortabel man er med kommandolinjen ... for eksempel:

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

      med litt magi i bash kan du til og med lage en funksjon som utfører det samme bare ved å sette navnet på sangen:

      Noe som

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

      og klar! du kan flytte alle sangene dine med et enkelt

      mover cancion1.mp3

      🙂 Når det gjelder det andre, selv om brukergrensesnittene delvis gjør jobben "enklere" ved å unngå å huske og gjenta kommandoer, er dette bare nyttig i generelle rammer, når du trenger noe spesialisert, gparted eller andre GUI-er kan være korte 🙂 og GUI-ene ikke legg til ekstra funksjonalitet, de tar bare de som finnes i CLI (ikke alle) og grupperer dem, men skaper ikke dem

      Hilsen

      1.    anonym sa

        uansett hvor mye prosessen automatiseres med:
        flytte sang1.mp3

        da vil det nødvendigvis være:
        flytt sang2.mp3
        flytte sang3.mp3
        .
        .
        .
        flytte sang20.mp3
        det er mange rørende sanger ...
        med hvilken som helst filbehandling .. det tar bare 20 klikk og en dra og slipp-gest. Jeg vet ikke, men i det minste tillater lederen min (Dolphin) meg å enkelt og superrask (mindre enn 5 sekunder) sortere en liste med 100 sanger etter navn, dato, størrelse, koder, rangering, album, artist, varighet osv. for meg som er PRODUKTIVITET, og det gir også funksjonalitet til kommandolinjen.

        Når det gjelder det andre eksemplet .. GParted: OK .. Hvis du trenger noe veldig spesialisert, for eksempel å variere standardverdien for byte per inode når du formaterer, bør du gå til konsollen .. men venn, det er ikke det normale. 99% av tiden oppfyller GParted perfekt våre behov på en veldig enkel og veldig rask måte, og i det minste for meg, også produktivitet

        Hilsen

        1.    ChrisADR sa

          Vel, det er et eksempel på automatisering i sin enkleste form, som du sa "hvis jeg vil kopiere de 20 sangene mine som jeg liker best fra en katalog til en annen", teller alt dette med tiden det tar deg å "rolig" gjennomgå listen din etter å ha bestilt den og også klikke og så videre, terminalen tillater det og mye mer på bare en linje, kanskje omtrent 0.1 sekunders utførelse i prosessoren din (selv om den er gammel), hvis øynene og musen kan overvinne det , vel, jeg skal til GUI-ene 🙂 og det er ikke det at jeg sa at jeg ikke bruker dem, de har mange nyttige ting, jeg vil ikke benekte det, men jeg har i det minste funnet en mye større allsidighet i terminalen, i tillegg til å hjelpe meg å øve litt programmering hver dag når jeg automatiserer jobber. Et veldig vanlig ordtak blant SysAdmins er "hvis du gjør det samme mer enn en gang om dagen, automatiser det, hvis du gjør det en gang om dagen i mer enn to dager, automatiser det, hvis du gjør det enda en gang i måneden, automatiser det . "

          Men hei, når det gjelder smak og farger, har hver sin egen ting, jeg begrenser meg til å dele de tingene jeg liker 🙂 og kanskje er det mange mennesker som er "redde" for ting som emacs, vim eller den samme terminalen , med disse innleggene prøver jeg bare å gi deg litt selvtillit og nysgjerrighet slik at du kan prøve dem og bestemme 🙂

          Hilsen

          PS: Jeg kjenner mange utviklere som GUI-er ikke løser ting på grunn av hvor mye kompleksitet de trenger i deres daglige arbeid, som en "vanlig" bruker kanskje aldri vil se, men det betyr ikke at flere brukere "Commons" kan bruk disse verktøyene og få de samme mer allsidige fordelene.

          1.    anonym sa

            Jeg tror fortsatt at det for denne oppgaven (og mange andre) tar mye kortere tid å bruke en filbehandling enn med kommandolinjen ... men hei, som du sier, det er smak og farger for alle.

            Jeg benekter ikke og er ikke redd terminalen, men jeg ser det ikke som en nesten obligatorisk setning, så jeg begynte med å si "Kommandolinje ja, men når det passer"

            Når det gjelder utviklere, er det alt, men skalaen gir tydelig tips til den ene siden: Jeg inviterer deg til å ta en titt på:

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

            Det ser ut til at "vanlige" utviklere ser fordelene ved å jobbe i et grafisk miljø fullt av fasiliteter sammenlignet med de som satser på å jobbe med "bare tekst" -redaktører.

    2.    du brenner sa

      For eksempel: hvis jeg vil kopiere de 20 sangene jeg liker best fra en katalog til en annen, er det superkomfortabelt å gjøre Ctrl + Click mens du rolig går gjennom en enorm liste fra en filbehandling og deretter drar og slipper.

      Det er kommandolinjefilbehandlere som er like praktiske eller mer enn grafikk, for eksempel Vifm eller Ranger. Også for partisjoneringsdisker er det kommandolinjeapplikasjoner som cgdisk med et grensesnitt.

      1.    ChrisADR sa

        Vel, det er sant 🙂 Jeg vet ikke helt hvorfor så mange frykter terminalen, det er faktisk et veldig robust og allsidig verktøy, noe som alle burde prøve minst en gang i dybden.

        Takk for deling og hilsen.

      2.    anonym sa

        Ja, terminalfilbehandlere eksisterer før grafikk. Når det gjelder praktisk, avhenger det av hva du vil. Enhver grafisk filbehandling er utstyrt med faner, favoritter, visningsmodus, forhåndsvisning, muligheten for å bestille den på 1000 forskjellige måter, for å koble til en terminal, installere plugins, etc, etc, etc. noe som gjør dem mye mer allsidige enn noen tekstfilbehandling.

        Bra trenger ikke nødvendigvis å være stygg

    3.    35 sa

      det er bare det at du lærer deg å gjøre det du gjør i cli, og jeg garanterer at det blir lettere, det du nevner veldig enkelt du ville gjort med rsync, og du kan enkelt gjøre det til et skript.

      Jeg anbefaler en cli-filbehandling kalt ranger som har alt du nevner.

      1.    godel sa

        For å kopiere de 20 sangene lager jeg en liste med "ls * .ogg> top20". Deretter går jeg til Vim og velger (sletter det jeg ikke vil ha) sangene jeg vil ha. På slutten gjør jeg "cp $ (cat top20) otrodir" og det er det. Dette er mer behagelig enn å velge med musen, og at de 19 låtene som allerede var valgt, er valgt bort ved en feiltakelse.

  3.   Alberto cardona sa

    Herlig!!
    Jeg kan fortsatt ikke bestemme meg for å installere Gentoo 🙁 (jeg er på BunsenLabs) Jeg bruker for øyeblikket openbox og bruker nano til mine Bash-skript
    Men det får meg til å våge meg inn i Vim eller Emacs!
    Hilsen
    Jeg liker å lese innleggene dine

    1.    ChrisADR sa

      Tusen takk Alberto 🙂 Jeg er veldig glad for at du liker artiklene mine, jeg liker å skrive innleggene.
      Jeg håper du muntrer opp og selvfølgelig gjør du det, tingen er å alltid prøve noe nytt 🙂

  4.   ChrisADR sa

    Vel, med dette svarer jeg ferdig på de to siste kommentarene, og jeg vil sette pris på at moderatorene ikke godtar mer om det, dette går ingen steder, og ideen er ikke å fylle kommentarlisten med en rekke argumenter for eller imot en eller annen.

    Når det gjelder "allsidighet", kanskje de som tror dette anser at bare GUI har plugins, men sannheten er at terminal plugins er så varierte og funksjonelle som de som bruker dem, det klareste eksemplet er

    https://vimawesome.com/

    En nesten endeløs liste over plugins for vim som gjør den mer allsidig enn mange IDEer ... og når det gjelder det, nevner den lenken ikke at listen inkluderer personer som bruker IDEer på Windows og Mac, som faktisk snakker mye bedre om Vim snakker om Eclipse siden hvis vi sammenligner antall personer som bruker Eclipse på de tre plattformene, har Vim ingenting å skamme seg over å ha en velfortjent 4. plass.

    Men å gå litt lenger ... at "vanlige" folk bruker noe, sier ikke at dette nødvendigvis er bra, men sannsynligvis vil Windows være mye bedre enn andre systemer 🙂 kanskje det er bare at de foretrekker å ikke lære å bruke noe fordi de foretrekker det enkle alternativet ... eller fordi firmaet ditt dermed har bestemt seg for å implementere standarden (Eclipse er standarden i mange selskaper, vil det forklare det store antallet brukere ... akkurat som Android og Visual Studio, som er det eneste middelet til å jobbe med sine respektive språk ... mens Vim Det er et GRATIS valg av de som bruker det)

    . "Stygg" er et veldig subjektivt begrep, jeg kan vurdere "stygt" utformingen av Qt, eller WebKit, eller til og med Mac OS-grensesnittet ... men det betyr ikke at noen andre ser det på den måten, det er bare et spørsmål om vaneoverflater

    Hilsen

    1.    anonym sa

      Jeg respekterer ønsket om ikke å gi rett til å svare.

      kun for informasjon:
      https://vim.sourceforge.io/download.php

  5.   Claudio sa

    Jeg er helt enig med Anonym, men i mitt tilfelle er jeg en enkel bruker, uten dyp kunnskap fra en analytiker eller programmerer. og som sådan trenger jeg en GUI for å feile meg mange av skattene i Linux, for eksempel i dag, og siden året 2017, er det ingen GUI-applikasjon som gjør det enkelt å dele mapper på et Linux-nettverk, og jeg sier Linux, jeg får ikke dem Med Samba og Windows snakker jeg om et rent Linux-nettverk. For å kunne dele i et Linux-nettverk, må du konfigurere en bestemt NFS, og bare fra kommandolinjen er tid bortkastet, og jeg forklarer heller ikke hvorfor det er så vanskelig å ha en GUI som gjør det enkelt som det skjer i Windows.
    I følge ChrisADR "Jeg er en ung programvareutvikler", og du ser at du vet mye om emnet, bør du utvikle et GUI-program som letter det jeg nettopp har forklart, eller er din en ren tittel og skryter? Det er det samme som om en lege ga sin mening om hvordan det er bedre å utføre en operasjon, uten å ha gjort det. "Du ser pingoene på banen", bør du utvikle en GUI-applikasjon før du gir din mening fra stedet for "programvareutvikler", og hvis det er bedre eller ikke å bruke terminalen, må du sette deg i stedet for hvem som bruker Linux og som bruker den. Forhåpentligvis kan du se en artikkel av ChrisADR, som presenterer og deler GUI-applikasjonen, for fildeling i et Linux-nettverk. For øyeblikket er det ikke noen, med mindre du bruker Samba bare for Windows-deling.

    1.    Bill sa

      Å lage et program er ikke noe enkelt på en ettermiddag, det krever en innsats på minst flere uker, og det som er verre, så har vi anstrengelsen med å fikse år, løse det, oppdatere det sammen med de nye funksjonsbibliotekene som gjør de tidligere brukte foreldede ., emballasjen for de forskjellige distribusjonene, ...
      Men det er også det, hvis du allerede har SAMBA som du også kan bruke mellom to GNU / Linux uten behov for Windows, hvorfor vil du bruke NFS-løsningen?
      Aunque los manuales que veas por internet hablen de linux y windows, simplemente sigue las instrucciones para compartir una carpeta desde linux y luego para conectarte a otra carpeta en red desde linux også.
      Det ser ut til at Ubuntu 16.04 fortsatt har en enkel implementering av dette temaet: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/