Чому ми віддаємо перевагу командному рядку перед графічними інтерфейсами?

Переглядаючи інші статті, я натрапив на це маленьке запитання, яке викликало у мене велике задоволення, це правда, що одна з перших речей, з якою стикаються користувачі інших систем (крім FreeBSD), полягає в тому, що ми не використовуємо графічні інтерфейси. По правді кажучи, на початку моєї подорожі GNU / Linux мені це теж здалося досить цікавим. Я повинен визнати, що з часом я зараз використовую командний рядок набагато більше, ніж будь-яка інша програма з графічним інтерфейсом, і багато разів я віддаю перевагу програмам командного рядка, а не більш досконалим програмам із сліпучим графічним інтерфейсом.

Міф

Насправді це не що інше, як міський міф, адже на відміну від інших систем, імена яких тут не згадуватимуть, це в GNU / Linux, де ви насправді маєте свобода на вибір. Я хотів би, щоб в інших системах існувала універсальність, яка існує тут. Але давайте розглянемо це питання більш поглиблено, інакше багато речей незрозумілі:

Сервери

Ми всі чули це слово Сервер, дехто вважає, що це ті суперкомп’ютери, які живлять Google або Amazon, або той, що працює у вашій компанії. Але реальність така: Сервер відповісти на a модель роботи. Ми використовуємо цей термін для позначення того факту, що у нас є програма, доступна для користувачів (клієнтів) і передає їм щось. Основним прикладом є Apache, який використовується для служити веб-сторінок в Інтернеті. Ця програма забезпечує html до клієнтів що запитують це.

Сервер зображень

Але на суперкомп’ютерах, які роблять Google та багато інших компаній, може бути не тільки сервер, навіть „найстаріший” ноутбук може бути сервер, особливо коли ми говоримо про зображення. Ми всі керуємо a сервер зображень на наших ноутбуках, щоб мати функціональний екран, в даному випадку сервер у-ель- клієнт вони одна і та ж людина. Найпоширенішим прикладом є X (відомий як xorg-server у багатьох дистрибутивах) та його нова заміна Wayland. Ми не збираємося детально пояснювати, чому організація, чи як працює Вейленд, чи філософія, яка стоїть за цими великими проектами, але ми будемо чітко давати зрозуміти, що саме завдяки їм ми можемо розраховувати на веб-браузер як Firefox або Chrome, або багато інших програм.

Менеджер вікон

Менеджери вікон працюють безпосередньо з сервером зображень, їх робота на "нижчому" рівні, оскільки вони керують (вибачте надмірність) способом створення, модифікації, закриття вікон. Зазвичай вони досить прості, і на них побудовано робоче середовище. Список великий, але я залишу тут лише думку, що вони є мінімалістичне програмне забезпечення, які дозволяють мати досить базовий контроль над сервером зображень.

Робоче середовище

Більш спеціалізований набір програмного забезпечення, яке не тільки забезпечує роботу сервера зображень, але також забезпечує можливості налаштування. Серед них найстарішими та найважчими є KDE та GNOME, але ми також маємо більш легкі середовища, такі як LXDE або Mate, Cinnamon тощо.

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

Після короткого огляду світу серверів зображень ми знову переходимо до нашої теми. CLI, означає всю програму, яка виконується за допомогою командного рядка git, vim, weechat, або добре, що б ще не спало на думку. Ви бачите, що я говорю про програми, які хоч і виконуються в командному рядку, але мають такий "графічний інтерфейс" weechat o vim. Для всіх, хто їх не пробував, я рекомендую їх, я в основному використовую їх цілий день.

Чому CLI краще, ніж GUI

Давайте спробуємо щось досить просте 🙂 Днями я хотів попрацювати над виправленням Portage (менеджер пакетів Gentoo). Як і будь-який хороший спільний проект, кількість рядків коду перевищує 70 тис. Спробуйте відкрити це в IDE, такому як NinjaIDE (Portage написано на Python), і незабаром ви помітите, що коли екран починає завантажуватися, ваша машина стає надзвичайно повільною (принаймні в моєму i7), і це просто намагається відкрийте код і змініть колір «довідки» за замовчуванням.

Тепер спробуйте зробити те ж саме з vimЦе завантажило мене за лічені мілісекунди, і в той же час додало "симпатичні" кольори та все інше.

CLI був задовго до цього

Дехто тут скаже, що ці програми є старий, Я телефоную їм міцний. Якби ви могли побачити кількість годин, вкладених у будівництво emacs, vim, gdbта сотні інших консольних програм можуть помітити, що кількість коду та функціональних можливостей настільки велика, що вони практично вже вирішили все, що їм потрібно було вирішити. Багато графічний інтерфейс користувача для програм, які вже є надійними у своєму CLI, вони ніколи не матимуть однакову кількість функціональних можливостей, це просто тому, що якщо ми зробимо вкладку для кожного доступного підкоманди, наприклад git, ми б втратили себе між варіантами, і це було б непродуктивно, оскільки це ускладнило б роботу.

CLI швидше

Магія починається з ключа Tab, це не тільки ваш найкращий друг під час перегляду робочих столів у вашому терміналі, але коли він правильно налаштований, він дозволяє скоротити довгі речення до 2 літер і табуляції, 3 букв і табуляції, або навіть літери та Вкладка.

Але це не єдина перевага тих, хто знайшов час, щоб навчитися vim o emacs Можна сказати, що, хоча крива навчання трохи вище, ніж у IDE в наші дні, зрештою результати продуктивності вражають, не можна уявити час, який можна втратити при русі миші. Дотримання рук на клавіатурі у 90% випадків не тільки вчить концентрації уваги, але факт набору такої кількості клавіш на клавіатурі робить вас досить спритними та продуктивними. І тепер ми повертаємося до попереднього пункту, так довго з нами, такі програми вже мають усі функції, про які хтось міг подумати, на думку спадає досить поширена приказка для тих з нас, хто використовує vim:

Якщо ви використовуєте більше 4 клавіш, можливо, буде кращий спосіб.

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

CLI дає вам повний контроль

Коли хтось виконує операції з мишею або програми з сервера зображень, всі додаткові конфігурації, що виконуються в момент клацання, не завжди присутні, цього не відбувається з терміналом, тут ви маєте абсолютну силу того, що воно виконується чи ні, з яким варіантом чи в якій мірі. З часом ви усвідомлюєте, що вам потрібно менше, ніж ви думаєте, і це допомагає робити речі більш цілеспрямовано.

У графічному інтерфейсі теж є своя річ

Я не збираюся говорити, що нам всім слід завжди користуватися CLI, це теж не ідеально, я сам майже весь час використовую графічні інтерфейси, щоб написати цю публікацію, я використовую свій Chrome, і щоб бачити свої електронні листи, я використовую Evolution (хоча я також використовую mutt зовсім недавно). І я думаю, це найбільший міф з усіх ... що люди думають, що GNU / Linux просто припиняє їх, мені подобається моє середовище робочого столу, воно цілком мінімалістичне, але мені це подобається 🙂 І зазвичай у мене лише два-три програми, що працюють, мій Chrome, мій Evolution та мій термінал 🙂

Ось деякі з причин, чому мені так подобаються CLI, і чому я запрошую вас спробувати, вони згодом можуть, як і я, використовувати більше CLI, ніж GUI 😉 Привіт


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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

  1.   Анонімний - сказав він

    «Як і будь-який хороший спільний проект, кількість рядків коду перевищує 70 тис. Ця частина зробила мене занадто галасливим. Чи існує технічна неможливість, чому код потрібно ущільнювати в одному файлі? Чи не було б краще розділити поведінку в різних сутностях (файли / класи / модулі)?
    Здається, це не є вагомою причиною нав'язувати одну технологію іншої, залишати осторонь переваги, які пропонується через брак у формі розвитку. У будь-якому випадку, я говорю, не знаючи, до якого конкретно проекту це стосується, є більша причина, яка змушує такий спосіб роботи

    1.    ChrisADR - сказав він

      Привіт

      Ну, можливо, для цього потрібно трохи пояснити, але те, що я називаю "хорошим проектом", означає, що кількість рядків виражає, що це здорове співтовариство, яке постійно зростає. Є проекти зі значно меншою кількістю ліній, але цілком здорових у своєму розвитку. По правді кажучи, так, portage розділено на якомога більше файлів, але завжди потрібно зберігати частини, згруповані разом, як бібліотеки, або комутатори, що ведуть до багатьох інших функцій. Але, імпортуючи проект сьогодні у багато середовищ розробки, це означає, що ви збираєтесь прочитати всі файли проекту та спробувати встановити правильний "візуальний" формат.

      Я сподіваюся зробити це трохи зрозумілішим 🙂 і дякую за коментар.
      привіт

  2.   Анонімний - сказав він

    Використання командного рядка? Так, але лише у відповідних випадках. Тобто, коли це зручніше і швидше. Наприклад, якщо я хочу встановити певну програму, мені зручніше вводити назву програми sudo apt install, ніж відкривати диспетчер програмного забезпечення, шукати його, позначати для встановлення та натискати "встановити". Але загалом це не так. Наприклад: якщо я хочу скопіювати 20 пісень, які мені найбільше подобаються, з одного каталогу в інший, надзвичайно зручно робити Ctrl + Click, поки ви спокійно переглядаєте величезний список із файлового менеджера, а потім перетягуєте. Інший приклад: якщо я хочу розділити диск, набагато краще це зробити за допомогою gparted (програма, яка виконує безліч команд, одночасно показуючи вам графічно, яким буде диск), ніж робити це вручну. Список може бути нескінченним. Графічні інтерфейси можуть (насправді, як правило) значно полегшити роботу, крім додавання функціональних можливостей, які для даного додатку cli можуть бути неможливими

    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

      🙂 Що стосується другого, хоча частково графічні інтерфейси роблять роботу «простішою», уникаючи запам’ятовування та повторення команд, це корисно лише в загальних рамках, коли вам потрібне щось спеціалізоване, розподілене або будь-який інший графічний інтерфейс може бути коротким 🙂 і Графічний інтерфейс не додає додаткових функціональних можливостей, він бере лише ті, що існують в CLI (не всі), і групує їх, але не створює 🙂

      привіт

      1.    Анонімний - сказав він

        незалежно від того, наскільки процес автоматизований:
        рухати пісню1.mp3

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

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

        привіт

        1.    ChrisADR - сказав він

          Ну, це приклад автоматизації в найпростішій формі, як ви сказали "якщо я хочу скопіювати свої 20 пісень, які мені найбільше подобаються, з одного каталогу в інший", все це враховує час, який забирає у вас, щоб "спокійно" переглянути свій список Після замовлення, а також клацання та ін., Термінал дозволяє це і багато іншого лише в одному рядку, можливо, приблизно 0.1 секунди виконання у вашому процесорі (навіть якщо він старий), якщо ваші очі та миша можуть це подолати, ну до графічних інтерфейсів 🙂, і це не те, що я сказав, що я їх не використовую, у них є багато корисних речей, я не заперечую це, але я принаймні знайшов набагато більшу універсальність терміналу, крім того, що допомагає мені трохи практикувати програмування щодня при автоматизації робочих місць. Дуже поширена приказка серед 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.    чупі35 - сказав він

      це просто те, що ти вчишся робити те, що робиш у cli, і я гарантую, що це буде простіше, те, що ти згадуєш, дуже легко зробиш із rsync, і ти легко можеш зробити це за допомогою сценарію.

      Я рекомендую менеджер файлів cli під назвою ranger, який містить усе, що ви згадали.

      1.    godel - сказав він

        Щоб скопіювати 20 пісень, я складаю список із «ls * .ogg> top20». Потім я переходжу до Vim і вибираю (видаляю те, що я не хочу) пісні, які хочу. В кінці я роблю "cp $ (cat top20) otrodir" і все. Це зручніше, ніж вибирати за допомогою миші, і те, що 19 пісень, які вже були вибрані, скасовуються помилково.

  3.   Альберто Кардона - сказав він

    Чудово !!
    Я все ще не можу вирішити встановити Gentoo 🙁 (я в BunsenLabs) На даний момент я використовую openbox і використовую nano для своїх скриптів Bash
    Але це викликає у мене бажання зайти у Vim або Emacs!
    привіт
    Я із задоволенням читаю ваші дописи

    1.    ChrisADR - сказав він

      Щиро дякую, Альберто 🙂 Я дуже радий, що вам подобаються мої статті, я із задоволенням пишу дописи.
      Сподіваюся, ви підбадьоритесь і, звичайно, зробите, справа завжди в тому, щоб спробувати щось нове 🙂

  4.   ChrisADR - сказав він

    Що ж, цим я закінчую відповідати на останні два коментарі, і я був би вдячний модераторам, які не приймають більше про це, це нікуди не дінеться, і ідея полягає не в тому, щоб заповнити список коментарів низкою аргументів на користь або проти того чи іншого.

    Що стосується "універсальності", можливо, ті, хто вважає це, вважають, що плагіни мають лише графічні інтерфейси, але правда полягає в тому, що плагіни терміналів такі ж різноманітні та функціональні, як і люди, які їх використовують, найяскравіший приклад

    https://vimawesome.com/

    Майже нескінченний список плагінів для vim, які роблять його більш універсальним, ніж багато IDE ... і, говорячи про це, у цьому посиланні не згадується, що цей список включає людей, які використовують IDE у Windows та Mac, що насправді говорить набагато краще про Вім розповідає про Eclipse, оскільки, якщо порівняти кількість людей, які використовують Eclipse на трьох платформах, то Віму нічого не слід соромитись, маючи заслужене 4 місце.

    Але якщо піти трохи далі ... те, що "звичайні" люди використовують щось, не означає, що це обов'язково добре, але, мабуть, Windows була б набагато кращою за інші системи. ... або тому, що ваша компанія, таким чином, вирішила впровадити стандарт (Eclipse є стандартом для багатьох компаній, що пояснювало б велику кількість користувачів ... так само, як Android та Visual Studio, які є єдиним засобом роботи зі своїми мовами ... поки Vim Це БЕЗКОШТОВНИЙ вибір тих, хто ним користується)

    . "Потворний" - це дуже суб'єктивний термін, я можу вважати "потворним" дизайн Qt, або WebKit, або навіть інтерфейс Mac OS ... але це не означає, що хтось бачить це так, це просто питання звичок

    привіт

    1.    Анонімний - сказав він

      Я поважаю бажання не бажати давати право на відповідь.

      лише для інформації:
      https://vim.sourceforge.io/download.php

  5.   Claudio - сказав він

    Я повністю погоджуюсь з Anonymous, але в моєму випадку я простий користувач без глибоких знань аналітика чи програміста. І як такий, мені потрібен графічний інтерфейс, щоб підвести мені безліч скарбів у Linux, наприклад, сьогодні і, будучи 2017 роком, не існує жодного графічного інтерфейсу, який полегшує обмін папками в мережі Linux, і я кажу, що Linux, я не отримую Що стосується Samba та Windows, я кажу про суто мережу Linux. Щоб мати змогу брати участь у мережі Linux, вам потрібно налаштувати певний NFS, і лише з командного рядка витрачається час даремно, а також я не пояснюю, чому так складно мати графічний інтерфейс, що полегшує це, як це відбувається в Windows.
    За словами ChrisADR, "я молодий розробник програмного забезпечення", і ви бачите, що знаєте багато про цю тему, чи слід розробляти програму графічного інтерфейсу, яка полегшує те, що я щойно пояснив, чи ваша назва - чиста назва? Це те саме, що якби лікар висловив свою думку про те, як краще робити операцію, не зробивши ніколи. "Ви бачите пінго на суді", вам слід розробити програму графічного інтерфейсу, перш ніж висловити свою думку з місця "розробника програмного забезпечення", і якщо краще чи не використовувати термінал, вам доведеться поставити себе на місце того, хто використовує Linux, і хто ним користується. Сподіваємось, ви можете побачити статтю ChrisADR, яка представляє та ділиться своєю програмою графічного інтерфейсу для спільного використання файлів у мережі 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/