Почему мы предпочитаем командную строку графическому интерфейсу?

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

Миф

На самом деле это не более чем городской миф, потому что в отличие от других систем, названия которых здесь не упоминаются, именно в GNU / Linux у вас действительно есть свобода выбора. Хотелось бы, чтобы в других системах была универсальность, которая существует здесь. Но давайте рассмотрим это дело повнимательнее, иначе многое неясно:

Сервера

Мы все слышали слово Сервер, некоторые считают, что это те суперкомпьютеры, на которых работают Google, Amazon или компьютер вашей компании. Но на самом деле Сервер ответить на модель работы. Мы используем этот термин для обозначения того факта, что у нас есть программа, доступная пользователям (клиентов) и протягивает им что-нибудь. Базовый пример: апаш, который используется для служить веб-страницы в Интернете. Эта программа доставляет HTML в клиентов что запросить это.

Сервер изображений

Но не только сервер может быть в суперкомпьютерах, которые Google и многие другие компании делают возможными, даже самый «старый» ноутбук может быть сервер, особенно когда мы говорим об изображениях. Мы все запускаем сервер изображений на наших ноутбуках, чтобы иметь рабочий экран, в данном случае сервер y el  клиент они один и тот же человек. Самый распространенный пример: 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 тысяч. Попробуйте открыть это в IDE, например NinjaIDE (Portage написан на Python), и вскоре вы заметите, что когда экран начинает загружаться, ваша машина становится очень медленной (по крайней мере, мой i7), и это просто пытается открыть код. и измените цвет на «помощь» по умолчанию.

Теперь попробуйте сделать то же самое с vim, он загрузил меня за считанные миллисекунды, и заодно поставил "красивые" цвета и все остальное.

CLI был задолго до

Некоторые здесь скажут, что эти программы старыйЯ называю их крепкий. Если бы вы могли увидеть количество часов, потраченных на строительство emacs, vim, gdb, и сотни других консольных программ, могут заметить, что объем кода и функций настолько велик, что они практически уже решили все, что им нужно было решить. Многие Графический интерфейс пользователя для программ, которые уже являются надежными в своем интерфейсе командной строки, они никогда не будут иметь такой же объем функциональности, потому что если мы сделаем вкладку для каждой доступной подкоманды, например git, мы потеряемся между вариантами, и это будет контрпродуктивно, потому что затруднит работу.

CLI быстрее

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

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

Если вы используете более 4 ключей, возможно, есть лучший способ.

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

CLI дает вам полный контроль

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

У GUI тоже есть своя вещь

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

Это некоторые из причин, по которым мне так нравятся интерфейсы командной строки и почему я приглашаю вас попробовать их, они могут в конечном итоге, как и я, использовать больше интерфейсов командной строки, чем графического интерфейса Приветствую


18 комментариев, оставьте свой

Оставьте свой комментарий

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

*

*

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

  1.   анонимный сказал

    «Как и в любом хорошем совместном проекте, количество строк кода превышает 70 тысяч. Эта часть сделала меня слишком шумным. Есть техническая невозможность, почему код должен быть сжат в одном файле? Не лучше ли было бы разделить поведение в разных сущностях (файлах / классах / модулях)?
    Кажется, что это не веская причина навязывать одну технологию другой, оставлять в стороне преимущества, которые предлагает одна из-за отсутствия формы разработки. В любом случае, я говорю, не зная, к какому конкретному проекту он относится, есть более серьезная причина, которая заставляет этот способ работы

    1.    КрисADR сказал

      Привет,

      Что ж, возможно, это требует небольшого объяснения, но то, что я называю «хорошим проектом», подразумевает, что количество строк выражает, что это здоровое сообщество, которое продолжает расти. Есть проекты с гораздо меньшим количеством линий, но вполне здоровые в своем развитии. По правде говоря, да, portage разделен на максимально возможное количество файлов, но всегда необходимо группировать части вместе, как библиотеки или переключатели, которые приводят к довольно большому количеству других функций. Но при импорте проекта во многие IDE сегодня это означает, что он прочитает все файлы в проекте и попытается установить правильный «визуальный» формат.

      Я надеюсь прояснить это 🙂 и спасибо за комментарий.
      привет

  2.   анонимный сказал

    Используя командную строку? Да, но только если применимо. То есть когда удобнее и быстрее. Например, если я хочу установить определенную программу, мне удобнее набрать sudo apt install programname, чем открывать диспетчер программ, искать его, отмечать для установки и нажимать «установить». Но в целом это не так. Например: если я хочу скопировать 20 песен, которые мне нравятся больше всего, из одного каталога в другой, очень удобно нажать Ctrl + Click, пока вы спокойно просматриваете огромный список из файлового менеджера, а затем перетаскиваете его. Другой пример: если я хочу разбить диск на разделы, гораздо лучше сделать это через gparted (программу, которая выполняет множество команд, показывая графически, каким будет диск), чем делать это вручную. Список можно продолжать бесконечно. Графические интерфейсы пользователя могут (на самом деле обычно) значительно облегчить работу, в дополнение к добавлению функций, которые для данного приложения cli могут быть невозможны

    1.    КрисADR сказал

      ну, это зависит от того, насколько комфортно пользоваться командной строкой ... например:

      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

      🙂 Что касается второго, хотя отчасти графические интерфейсы упрощают работу, избегая запоминания и повторения команд, это полезно только в общих фреймворках, когда вам нужно что-то специализированное, gparted или любой другой графический интерфейс может быть коротким 🙂 и графические интерфейсы не добавляют дополнительных функций, они берут только те, которые существуют в CLI (не все), и группируют их, но не создают их.

      привет

      1.    анонимный сказал

        независимо от того, насколько автоматизирован процесс:
        переместить song1.mp3

        тогда обязательно будут:
        переместить song2.mp3
        переместить song3.mp3
        .
        .
        .
        переместить song20.mp3
        есть много трогательных песен ...
        с любым файловым менеджером .. это занимает всего 20 щелчков мышью и жест перетаскивания. Я не знаю, но, по крайней мере, мой менеджер (Dolphin) позволяет мне просто и сверхбыстро (менее 5 секунд) отсортировать список из 100 песен по имени, дате, размеру, тегам, рейтингу, альбому, исполнителю, продолжительности и т.д. для меня это ПРОИЗВОДИТЕЛЬНОСТЬ, а также добавление функциональности в командную строку.

        Что касается другого примера ... GParted: Хорошо ... если вам нужно что-то очень специализированное, например, изменение значения по умолчанию для байтов на каждый индексный дескриптор при форматировании, вам следует перейти в консоль ... но друг, это не нормально. В 99% случаев GParted полностью удовлетворяет наши потребности очень простым и очень быстрым способом и, по крайней мере, для меня, это также производительность

        привет

        1.    КрисADR сказал

          Что ж, это пример автоматизации в ее простейшей форме, как вы сказали: «Если я хочу скопировать свои 20 песен, которые мне нравятся больше всего, из одного каталога в другой», все это учитывается со временем, которое вам нужно, чтобы «спокойно» просмотрите свой список после его заказа, а также щелкнув и т. д., терминал позволяет это и многое другое всего в одной строке, возможно, около 0.1 секунды выполнения в вашем процессоре (даже если он старый), если ваши глаза и мышь могут преодолеть это , ну, я перейду к графическим интерфейсам 🙂, и это не значит, что я сказал, что не использую их, у них много полезных вещей, я не буду отрицать этого, но я, по крайней мере, обнаружил гораздо большую универсальность в терминале, в дополнение к тому, что я помогал мне практиковаться в программировании каждый день при автоматизации работы. Среди системных администраторов очень распространена поговорка: «Если вы делаете одно и то же более одного раза в день, автоматизируйте это, если вы делаете это один раз в день более двух дней, автоматизируйте это, если вы делаете это хотя бы раз в месяц, автоматизируйте это». . "

          Но эй, с точки зрения вкусов и цветов, у каждого свои собственные, я ограничиваюсь тем, что делюсь тем, что мне нравится 🙂 и, возможно, есть много людей, которые «боятся» таких вещей, как emacs, vim или тот же терминал, этими сообщениями я просто пытаюсь вселить в вас немного уверенности и любопытства, чтобы вы могли попробовать и решить 🙂

          привет

          PS: Я знаю многих разработчиков, для которых графический интерфейс не решает задачи из-за сложности, которую они требуют в повседневной жизни, что, возможно, никогда не увидит «обычный» пользователь, но это не означает, что больше «Commons "могут использовать эти инструменты и получать такие же более универсальные преимущества.

          1.    анонимный сказал

            Я все еще думаю, что для этой задачи (и многих других) требуется гораздо меньше времени с использованием файлового менеджера, чем с помощью командной строки ... но, эй, как вы говорите, есть вкусы и цвета для всех.

            Я не отрицаю и не боюсь терминала, но я не считаю его почти обязательным предложением, поэтому я начал с того, что сказал: «Командная строка да, но когда это необходимо»

            Что касается разработчиков, то здесь есть все, но шкала явно склоняется в сторону: приглашаю вас взглянуть на:

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

            Похоже, что «обычные» разработчики действительно видят преимущества работы в графической среде, полной возможностей, если сравнивать ее с теми, кто делает ставку на работу с «только текстовыми» редакторами.

    2.    ты горишь сказал

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

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

      1.    КрисADR сказал

        Что ж, это правда 🙂 Я действительно не знаю, почему так много людей боятся терминала, на самом деле это очень надежный и универсальный инструмент, который каждый должен попробовать хотя бы один раз.

        Спасибо, что поделились и приветствовали.

      2.    анонимный сказал

        Да, файловые менеджеры терминала существуют раньше графики. Что касается практичности, это зависит от того, чего вы хотите. Любой менеджер графических файлов снабжен вкладками, избранным, режимами просмотра, предварительным просмотром, возможностью заказа 1000 различных способов, подключения терминала, установки плагинов и т. Д. И т. Д. И т. Д. что делает их более универсальными, чем любой менеджер текстовых файлов.

        Хорошее не обязательно должно быть уродливым

    3.    чупы35 сказал

      просто вы учитесь делать то, что делаете в cli, и я гарантирую, что это будет проще, то, что вы упомянули, очень легко сделать с помощью rsync, и вы можете легко сделать это с помощью сценария.

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

      1.    гёдель сказал

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

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

    Замечательный!!
    Я все еще не могу решить установить Gentoo 🙁 (я в BunsenLabs). В настоящее время я использую openbox и использую nano для своих сценариев Bash
    Но это заставляет меня рискнуть заняться Vim или Emacs!
    привет
    мне нравится читать твои посты

    1.    КрисADR сказал

      Большое спасибо, Альберто 🙂 Я очень рад, что тебе нравятся мои статьи, мне нравится писать сообщения.
      Надеюсь, вы поднимете настроение, и, конечно же, вы это сделаете, главное всегда пробовать что-то новое 🙂

  4.   КрисADR сказал

    Что ж, на этом я заканчиваю отвечать на два последних комментария, и я был бы признателен модераторам, которые не соглашались с этим больше, это никуда не денется, и идея состоит не в том, чтобы заполнять список комментариев серией аргументов в пользу или против одного или другой.

    Что касается «универсальности», возможно, те, кто так думает, считают, что только графические интерфейсы имеют плагины, но правда в том, что плагины терминала так же разнообразны и функциональны, как и люди, которые их используют, наиболее ярким примером является

    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, и только из командной строки, это тратит время, а также я не объясняю, почему так сложно иметь графический интерфейс, который упрощает работу, как это происходит в Windows. .
    Согласно ChrisADR: «Я молодой разработчик программного обеспечения», и вы видите, что хорошо разбираетесь в предмете, следует ли вам разработать приложение с графическим интерфейсом, которое облегчает то, что я только что объяснил, или ваше название - чистое название и хвастовство? Это то же самое, как если бы врач высказал мнение о том, как лучше провести операцию, даже не сделав ее. «Пинго видны на корте», вы должны разработать приложение с графическим интерфейсом, прежде чем высказывать свое мнение с вашего места «разработчика программного обеспечения», и, если лучше или не использовать терминал, вы должны поставить себя на место того, кто использует Linux и тем, кто им пользуется. Надеюсь, вы сможете увидеть статью ChrisADR, в которой рассказывается о приложении с графическим интерфейсом пользователя для обмена файлами в сети Linux. На данный момент их нет, если только вы не используете Samba только для совместного использования Windows.

    1.    Билл сказал

      Создание программы в один прекрасный день - непростая задача, это требует усилий, по крайней мере, в течение нескольких недель, и, что еще хуже, у нас есть годы усилий на исправление ошибок, обновление ее вместе с новыми библиотеками функций, которые делают ранее используемые устаревшими. , упаковка для разных дистрибутивов, ...
      Но также и то, что, если у вас уже есть SAMBA, которую вы также можете использовать между двумя GNU / Linux без необходимости в какой-либо Windows, почему вы хотите использовать решение NFS?
      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 Также.
      Кажется, что в Ubuntu 16.04 все еще есть простая реализация этой темы: http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/