Защо предпочитаме командния ред пред графичните интерфейси?

Преглеждайки други статии, попаднах на този малък въпрос, който ми създаде много забавление, вярно е, че едно от първите неща, които потребителите на други системи (с изключение на FreeBSD) получават в лицето ни, е, че не използваме GUI. Честно казано, също ми се стори доста любопитно в началото на пътуването ми с GNU / Linux. Трябва да призная, че с течение на времето сега използвам командния ред много повече от която и да е друга програма с GUI и много пъти предпочитам програми от командния ред пред по-сложни програми с ослепителни GUI.

Митът

Всъщност това не е нищо повече от градски мит, защото за разлика от други системи, чиито имена няма да бъдат споменати тук, той е в GNU / Linux, където наистина имате свобода по избор. Иска ми се, че в други системи имаше гъвкавостта, която съществува тук. Но нека разгледаме по-отблизо този въпрос, иначе много неща не са ясни:

сървъри

Всички сме чували думата Сървър, някои вярват, че това са онези супер компютри, които захранват Google или Amazon, или този във вашата компания. Но реалността е, че а сървър отговори на a модел на работа. Използваме този термин за обозначаване на факта, че имаме програма, достъпна за потребителите (клиенти) и им подава нещо. Основен пример е Apache, който се използва за служа уеб страници в интернет. Тази програма доставя html към клиенти които го искат.

Сървър за изображения

Но не само сървърът може да бъде на супер компютрите, които Google и много други компании правят възможно, дори и "най-старият" лаптоп може да бъде сървъра, особено когато говорим за изображения. Всички управляваме a сървъра на изображенията в нашите лаптопи, за да може да има функционален екран, в случая сървъра и клиент те са един и същ човек. Най-често срещаният пример е X (известен като xorg-server в много дистрибуции) и новата му подмяна Wayland. Няма да даваме подробно обяснение защо организацията, или как работи Wayland, или философиите, които съществуват зад тези велики проекти, но ще изясним, че благодарение на тях можем да разчитаме на мрежата браузър като Firefox или Chrome, или много други програми.

Мениджър на прозорци

Мениджърите на прозорци работят директно със сървъра за изображения, тяхната работа е на "по-ниско" ниво, тъй като те управляват (простете излишъка) как прозорците се създават, модифицират, затварят. Обикновено те са доста прости и десктоп средите са изградени върху тях. Списъкът е голям, но тук ще оставя само идеята, че те са минималистичен софтуер, които позволяват да има доста основен контрол на сървъра за изображения.

Работна среда

По-специализиран набор от софтуер, който позволява не само работа със сървър за изображения, но също така предоставя възможности за персонализиране. Сред тях най-старите и най-тежките са KDE и GNOME, но имаме и по-леки среди като LXDE или Mate, Cinnamon и т.н.

CLI (интерфейс на командния ред)

След кратък поглед върху света на сървърите на изображения, сега отново се обръщаме към нашата тема. CLI, предполага цялата онази програма, която се изпълнява чрез команден ред git, vim, weechat, или добре, каквото друго ви хрумне. Виждате, че говоря за програми, които, макар че се изпълняват в командния ред, показват един вид „графичен интерфейс“ като weechat o vim. За всички, които не са ги пробвали, ги препоръчвам, те са основно тези, които използвам през целия ден.

Защо CLI е по-добър от GUI

Нека опитаме нещо доста просто 🙂 Онзи ден исках да работя върху кръпка Portage (мениджър на пакети на Gentoo). Както всеки добър съвместен проект, броят на редовете код надвишава 70 7. Опитайте се да го отворите в IDE като NinjaIDE (Portage е написан на Python) и скоро ще забележите, че когато екранът започне да се зарежда, вашата машина става изключително бавна (поне моят iXNUMX) и това просто се опитва да отворете кода и променете цвета по подразбиране на «помощ».

Сега се опитайте да направите същото с vim, той ме зареди за броени милисекунди и в същото време сложи "хубавите" цветове и всичко останало.

CLI е много преди

Някои тук ще кажат, че тези програми са Antiguos, Викам им здрав. Ако можете да видите броя на часовете, вложени в изграждането emacs, vim, gdb, и стотици други конзолни програми, може да забележите, че количеството код и функционалности е толкова голямо, че на практика вече са решили всичко, което е трябвало да решат. Много GUI за програми, които вече са стабилни в своя CLI, те никога няма да имат еднакво количество функционалност, това просто защото, ако направихме раздел за всяка налична подкоманда, например git, щяхме да се загубим между опциите и това би било контрапродуктивно, защото би затруднило работата.

CLI е по-бърз

Магията започва с ключа Tab, това е не само най-добрият ви приятел, когато разглеждате работните плотове във вашия терминал, но когато е правилно конфигуриран, ви позволява да съкратите дългите изречения до 2 букви и Tab, 3 букви и Tab, или дори буква и Tab .

Но това не е единственото предимство, тези от нас, които отделиха време да се научат vim o emacs Можем да кажем, че въпреки че кривата на обучение е малко по-висока от тази на IDE в наши дни, в крайна сметка резултатите от производителността са невероятни, не може да си представим времето, което може да бъде загубено при движение на мишката. Набирането на ръцете на клавиатурата в 90% от случаите не само учи на концентрация, освен това фактът, че пишете толкова много на клавиатурата, ви прави доста пъргави и продуктивни. И сега се връщаме към предишната точка, след като бяхме с нас толкова дълго, програми като тези вече имат всички функционалности, за които някой би могъл да се сети, доста често срещана поговорка за тези от нас, които използваме vim, идва на ум:

Ако използвате повече от 4 клавиша, може да има по-добър начин.

Прост, но мощен, vim ви позволява да правите всичко с големия брой клавиши и възможни комбинации, човек никога не спира да учи, но също така е вярно, че за да можете да го използвате не е необходимо да ги знаете всички, около 10 или 15 са достатъчни, за да започнете бъдете по-продуктивни.

CLI ви дава пълен контрол

Когато човек изпълнява операции с мишката или програми от сървъра за изображения, всички допълнителни конфигурации, които се изпълняват в момента на щракване, не винаги присъстват, това не се случва с терминала, тук имате абсолютната мощност на това, което изпълнява се или не, с каква опция или до каква степен. С течение на времето осъзнавате, че имате нужда от по-малко, отколкото си мислите, и това ви помага да правите нещата по-целенасочено.

GUI също има нещо свое

Няма да казвам, че всички трябва винаги да използваме CLI, това също не е идеално, аз самият използвам GUI почти през цялото време, за да напиша тази публикация използвам своя Chrome и за да видя имейлите си, използвам Evolution (въпреки че използвам и mutt съвсем напоследък). И предполагам, че това е най-големият мит от всички ... че хората мислят, че GNU / Linux просто ги прекратява, харесвам средата на работния си плот, доста минималистична, но ми харесва по този начин 🙂 И обикновено имам само две или три работещи програми, моят Chrome, моята Evolution и моят терминал 🙂

Това са някои от причините, поради които толкова харесвам CLI и защо ви каня да ги опитате, по-късно може да се окажат като мен, използвайки повече CLI от GUI s Поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   анонимен каза той

    «Както всеки добър съвместен проект, броят на редовете код надвишава 70 XNUMX. Тази част ме направи твърде шумна. Има ли техническа невъзможност защо кодът трябва да бъде уплътнен в същия файл? Не би ли било по-добре да разделяме поведението в различни обекти (файлове / класове / модули)?
    Не изглежда да е основателна причина да се налага една технология над друга, да се оставят настрана предимствата, които човек предлага поради липса под формата на развитие. Във всеки случай говоря, без да знам за какъв конкретен проект се отнася, има по-голяма причина, която налага този начин на работа

    1.    ChrisADR каза той

      Здравейте,

      Е, може би това изисква малко обяснение, но това, което наричам „добър проект“, предполага, че броят на редовете изразява, че това е една здрава общност, която продължава да расте. Има проекти с много по-малък брой линии, но доста здравословни в своето развитие. Честно казано да, portage е разделен на възможно най-много файлове, но винаги е необходимо частите да се групират като библиотеки или превключватели, които водят до доста други функции. Но когато импортирате проект в много IDE днес, това означава, че ще прочетете всички файлове в проекта и ще се опитате да поставите правилния "визуален" формат.

      Надявам се да го направя малко по-ясен 🙂 и благодаря за коментара.
      поздрави

  2.   анонимен каза той

    Използвате командния ред? Да, но само когато е приложимо. Тоест, когато е по-удобно и по-бързо. Например, ако искам да инсталирам определена програма, за мен е по-удобно да напиша sudo apt install име на програма, отколкото да отворя софтуерен мениджър, да го търся, да го маркирам за инсталиране и да натисна "install". Но като цяло това не е така. Например: ако искам да копирам 20-те песни, които ми харесват най-много, от една директория в друга, супер удобно е да направите Ctrl + Click, докато спокойно преглеждате огромен списък от файлов мениджър и след това плъзнете и пуснете. Друг пример: ако искам да разделя диск, е много по-добре да го направя чрез gparted (програма, която изпълнява множество команди, докато ви показва графично как ще бъде дискът), отколкото да го правя ръчно. Списъкът може да бъде безкраен. GUI могат (всъщност обикновено) да улеснят работата много по-лесно, в допълнение към добавянето на функционалности, които за дадено клип приложение може да са невъзможни

    1.    ChrisADR каза той

      добре, това зависи от това колко удобно е човек с командния ред ... например:

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

      с малко магия в bash можете дори да направите функция, която изпълнява едно и също нещо, само като поставите името на песента:

      Нещо като

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

      и готово! можете да преместите всичките си песни с просто

      mover cancion1.mp3

      Що се отнася до втория, въпреки че отчасти GUI правят работата „по-опростена“, като избягват запомнянето и повтарянето на команди, това е полезно само в общите рамки, когато имате нужда от нещо специализирано, gparted или друг графичен интерфейс може да бъде кратък short GUI не добавят допълнителни функционалности, те вземат само тези, които съществуват в CLI (не всички) и ги групират, но не ги създават

      поздрави

      1.    анонимен каза той

        без значение колко процесът е автоматизиран с:
        ход песен1.mp3

        тогава задължително ще има:
        ход песен2.mp3
        ход песен3.mp3
        .
        .
        .
        ход песен20.mp3
        има много трогателни песни ...
        с всеки файлов мениджър .. отнема само 20 кликвания и жест с плъзгане и пускане. Не знам, но поне моят мениджър (Dolphin) ми позволява просто и супер бързо (по-малко от 5 секунди) да сортирам списък със 100 песни по име, дата, размер, тагове, класиране, албум, изпълнител, продължителност и т.н. за мен това е ПРОДУКТИВНОСТ и също така добавя функционалност към командния ред.

        Що се отнася до другия пример .. GParted: Добре .. ако имате нужда от нещо много специализирано, като например промяна на стойността по подразбиране на байтове на inode при форматиране, трябва да отидете на конзолата .. но приятелю, това не е нормално е. 99% от времето GParted ще отговори перфектно на нашите нужди по много прост и много бърз начин и, поне за мен, това също и производителност

        поздрави

        1.    ChrisADR каза той

          Е, това е пример за автоматизация в най-простата му форма, както казахте „ако искам да копирам своите 20 песни, които ми харесват най-много, от една директория в друга“, всичко това се брои за времето, което ви отнема да „спокойно“ прегледате списъка си след като го поръчате, а също щракнете и т.н., терминалът позволява това и много повече само в един ред, може би около 0.1 секунди изпълнение във вашия процесор (дори ако е стар), ако очите и мишката могат да го преодолеят, добре към GUI I и не че казах, че не ги използвам, те имат много полезни неща, няма да го отрека, но поне намерих много по-голяма гъвкавост в терминала, освен че ми помогна да практикувам малко програмиране всеки ден при автоматизиране на работни места. Много често срещана поговорка сред SysAdmins е „ако правите едно и също нещо повече от веднъж на ден, автоматизирайте го, ако го правите веднъж на ден в продължение на повече от два дни, автоматизирайте го, ако го правите дори веднъж месечно, го автоматизирайте“.

          Хей, по отношение на вкусовете и цветовете, всеки от тях има свои собствени, аз се ограничавам да споделям нещата, които харесвам 🙂 и може би има много хора, които се "страхуват" от неща като emacs, vim или един и същ терминал, с тези публикации просто се опитвам да ви дам малко увереност и любопитство, за да можете да ги изпробвате и да решите 🙂

          поздрави

          PS: Познавам много разработчици, за които графичните интерфейси не решават нещата поради сложността, която се изисква в ежедневния им живот, което може би „обикновен“ потребител никога няма да види, но това не означава, че повече "Commons" може да използва тези инструменти и да получи същите по-гъвкави предимства.

          1.    анонимен каза той

            Все още мисля, че за тази задача (и много други) е необходимо много по-малко време с използване на файлов мениджър, отколкото с командния ред ... но хей, както казвате, има вкусове и цветове за всички.

            Не отричам, нито се страхувам от терминала, но не го виждам като почти задължително изречение, затова започнах, като казах „Команден ред да, но когато е подходящо“

            Що се отнася до разработчиците, има всичко, но мащабът ясно подсказва на една страна: Каня ви да разгледате:

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

            Изглежда, че "обикновените" разработчици виждат предимствата от работата в графична среда, пълна със съоръжения, в сравнение с тези, които залагат на работа с "само текстови" редактори

    2.    изгаряте каза той

      Например: ако искам да копирам 20-те песни, които ми харесват най-много, от една директория в друга, супер удобно е да направите Ctrl + Click, докато спокойно преглеждате огромен списък от файлов мениджър и след това плъзнете и пуснете.

      Има файлови мениджъри на командния ред, които са също толкова практични или повече от графични, като Vifm или Ranger. Също така за разделяне на дискове има приложения от командния ред като cgdisk с e ncurses интерфейс.

      1.    ChrisADR каза той

        Е, вярно е. Всъщност не знам защо толкова много хора се страхуват от терминала, той всъщност е много здрав и гъвкав инструмент, нещо, което всеки трябва да опита поне веднъж в дълбочина.

        Благодаря за споделяне и поздрави.

      2.    анонимен каза той

        Да, терминалните файлови мениджъри съществуват преди графики. Що се отнася до практичността, това зависи от това, което искате. Всеки графичен файлов мениджър е снабден с раздели, любими, режими на преглед, предварителен преглед, възможност за неговото подреждане по 1000 различни начина, за свързване на терминал, инсталиране на плъгини и т.н. и т.н. и т.н. което ги прави много по-гъвкави от всеки мениджър на текстови файлове.

        Доброто не е задължително да е грозно

    3.    chupy35 каза той

      просто се научавате да правите това, което правите в cli, и аз ви гарантирам, че ще бъде по-лесно, това, което споменавате много лесно, бихте направили с rsync и лесно можете да го направите скрипт.

      Препоръчвам cli файлов мениджър, наречен ranger, който съдържа всичко, което споменавате.

      1.    гьодел каза той

        За да копирам 20-те песни, правя списък с "ls * .ogg> top20". След това отивам във Vim и избирам (изтривам това, което не искам) песните, които искам. Накрая правя "cp $ (cat top20) otrodir" и това е всичко. Това е по-удобно от избора с мишката и че 19-те песни, които вече са били избрани, се премахват по погрешка.

  3.   Алберто Кардона каза той

    Чудесен!!
    Все още не мога да реша да инсталирам Gentoo 🙁 (аз съм в BunsenLabs) В момента използвам openbox и използвам nano за моите Bash скриптове
    Но ме кара да искам да се впусна във Vim или Emacs!
    поздрави
    С удоволствие чета публикациите ви

    1.    ChrisADR каза той

      Благодаря ви много Алберто 🙂 Много се радвам, че харесвате моите статии, обичам да пиша публикациите.
      Надявам се да развеселите и разбира се, че е така, нещото е винаги да пробвате нещо ново 🙂

  4.   ChrisADR каза той

    Е, с това приключвам да отговарям на последните два коментара и бих се радвал модераторите да не приемат повече за това, това не води до никъде и идеята не е да попълните списъка с коментари с поредица аргументи в полза или срещу едното или другото.

    Що се отнася до "гъвкавостта", може би всеки, който мисли това, смята, че само GUI имат приставки, но истината е, че приставките за терминали са толкова разнообразни и функционални, колкото хората, които ги използват, най-ясният пример е

    https://vimawesome.com/

    Почти безкраен списък с приставки за vim, които го правят по-гъвкав от много IDE ... и като говорим за това, тази връзка не споменава, че този списък включва хора, които използват IDE на Windows и Mac, което всъщност говори много по-добре за Vim говори за Eclipse, тъй като ако сравним броя на хората, които използват Eclipse на трите платформи, Vim няма от какво да се срамува, че има заслужено 4-то място.

    Но ако отидем малко по-далеч ... че "обикновените" хора използват нещо, не се казва, че това непременно е добре, но вероятно Windows ще бъде много по-добър от другите системи. Може би просто предпочитат да не се учат как да използват нещо, защото предпочитат лесния вариант ... или защото по този начин вашата компания е решила да внедри стандарта (Eclipse е стандартът в много компании, което би обяснило големия брой потребители ... точно като Android и Visual Studio, които са единственото средство за работа със съответните им езици ... докато Vim Това е БЕЗПЛАТЕН избор на тези, които го използват)

    . "Грозно" е много субективен термин, мога да считам за "грозен" дизайна на Qt, или WebKit, или дори интерфейса на Mac OS ... но това не означава, че някой друг го вижда по този начин, просто е въпрос на навици

    поздрави

    1.    анонимен каза той

      Уважавам желанието да не искам да давам право на отговор.

      само за информация:
      https://vim.sourceforge.io/download.php

  5.   Клаудио каза той

    Напълно съм съгласен с Anonymous, но в моя случай аз съм прост потребител, без дълбокото познание на анализатор или програмист. И като такъв, имам нужда от графичен потребителски интерфейс, за да ми провали много от съкровищата в Linux, например днес и като е 2017 година, няма приложение за графичен интерфейс, което улеснява споделянето на папки в Linux мрежа и казвам Linux, не ги получавам С Samba и Windows говоря за мрежова Linux мрежа. За да можете да споделяте в мрежа на Linux, трябва да конфигурирате определен NFS и само от командния ред, това губи време и също така не обяснявам защо е толкова трудно да има GUI, което го прави лесно, както се случва в Windows.
    Според ChrisADR „Аз съм млад разработчик на софтуер“ и виждате, че знаете много по темата, трябва ли да разработите GUI приложение, което улеснява това, което току-що обясних, или вашето е чисто заглавие и самохвалство? Същото е, както ако лекарят даде своето мнение за това как е по-добре да се направи операция, без никога да е правил такава. "Виждате пинготата на корта", трябва да разработите GUI приложение, преди да дадете мнението си от мястото си на "разработчик на софтуер" и ако е по-добре или не да използвате терминала, трябва да се поставите на мястото на този, който използва Linux и да който го използва. Надяваме се, че можете да видите статия от ChrisADR, представяща и споделяща нейното GUI приложение, за споделяне на файлове в Linux мрежа. В момента няма такива, освен ако не използвате Samba само за споделяне на Windows.

    1.    Гилермо каза той

      Създаването на програма не е нещо лесно за един следобед, изисква усилие от поне няколко седмици и което е още по-лошо, тогава имаме усилия от години да поправяме грешки, да го актуализираме заедно с новите библиотеки с функции, които правят използваните преди това остарели. , опаковката за различните дистрибуции, ...
      Но също така, ако вече имате SAMBA, която можете да използвате и между два GNU / Linux, без да е необходим Windows, защо искате да използвате NFS решението?
      Дори ако ръководствата, които виждате онлайн, говорят за Linux и Windows, просто следвайте инструкциите, за да споделите папка desde linux и след това да се свържете с друга мрежова папка desde linux също.
      Изглежда, че Ubuntu 16.04 все още има лесна реализация на тази тема: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/