Каждый, кто привык работать в консоли, согласится — запускать команды из командной строки в большинстве случаев быстрее, чем из GUI. И выполняются они быстрее.
Почему так?
Во-первых, консоль потребляет меньше ресурсов. Поэтому быстрее реагирует на команды (меньше задержка на ввод), быстрее выполняет задачи (меньше циклов CPU). Во-вторых, запускать команды с клавиатуры можно практически вслепую, не глядя на экран, с мышечной памятью горячих клавиш и автодополнением. Ты практически сливаешься с компьютером в единое целое, когда вводишь команды одну за другой, ждёшь ответа от удалённого сервера, парсишь результаты или запускаешь скрипты с цепочками из программ, где следующая берёт результат выполнения предыдущей.
Преимущества текстового интерфейса
Лучше всего понять преимущества консоли, если посмотреть на примеры самых плохих UI. Это злоупотребления цветом, звуком, расположением элементов:
- несочетающиеся ядовитые цвета;
- непонятные кнопки;
- всплывающие окна;
- капчи с глупыми задачами;
- окна, развёрнутые на весь экран, которые невозможно свернуть;
- манипуляции поведением, когда нужный нам выбор спрятан маленьким шрифтом в углу, а ненужный выбор выделен по умолчанию;
- и многие другие...
Это далеко не полный список. Сделать хороший графический интерфейс непросто. Хотя в этой области есть заранее сложившиеся стандарты, но дизайнеры интерфейсов часто пытаются выразить свою индивидуальность и придумать какие-то инновации, которые не всегда понятны. Или они ориентируются на широкую аудиторию юзеров, так что профессионалу пользоваться их продуктом просто противно.
В общем, есть миллион способов испортить GUI. Если же устранить все ошибки дизайна, то в итоге получится что-то минималистичное… вроде текстовой консоли.
Преимущества консоли и текстового интерфейса:
-
Скорость и эффективность. Это особенно полезно при работе с большими объёмами данных и выполнении задач, которые нагружают CPU и память.
-
Гибкость. Консоль позволяет выполнять сложные операции с помощью команд и скриптов, в том числе программировать сложные последовательности команд, принципиально недоступные через GUI.
-
Управляемость. Консоль даёт прямой и точный контроль над ОС и приложениями. Может детально контролировать каждую команду и её параметры, получать подробные отчёты об ошибках и статусе выполнения.
-
Универсальность. Это универсальный интерфейс, доступный на практически на всех ОС, при этом многие команды выполняются стандартным образом на всех системах без необходимости изучать различные GUI.
-
Удобство удалённого доступа. Текстовая консоль легко доступна через удалённое соединение по SSH (Secure Shell). Это позволяет администраторам удалённо управлять серверами и компьютерами, даже если они находятся в другой локации.
- Автоматизация Как мы уже отмечали, для консоли можно создавать скрипты и автоматизировать задачи. Это особенно полезно для повторяющихся операций и пакетной обработки. А в жизни обычного человека почти все задачи — повторяющиеся, как это ни печально...
Современные консоли
Поскольку текстовый интерфейс намного эффективнее GUI, многие профессионалы и разработчики выбирают именно его для повседневных задач. А если инструмент такой важный, то наверняка будут попытки его улучшить. Так и есть, в последние десятилетия в обычную консоль добавили:
- цвет;
- вкладки (табы);
- ASCII-графику для вывода картинок и интерактивных элементов, например, графиков, диаграмм, индикаторов выполнения и др.;
- встроенный браузер;
- встроенный медиаплеер;
- и многие другие фичи.
Посмотрим на некоторые из современных консолей.
Например, Tabby — «бесконечно» расширяемая консоль с поддержкой вкладок.
Из других особенностей:
- Работает под Windows, Mac и Linux.
- Встроенный SSH-клиент с менеджером соединений, передачей файлов через SFTP и Zmodem.
- Серийный терминал.
- Поддержка PowerShell, PS Core, WSL, Git-Bash, Cygwin, Cmder и CMD, все оболочки поддерживаются в одном окне.
- Полная поддержка Юникода, включая символы двойной ширины.
- Вкладки на любой стороне окна.
- Запоминание вкладок и панелей.
- Индикаторы прогресса и уведомления об активности на вкладках.
- Правильная работа с оболочкой в Windows, включая завершение вкладок.
- Встроенный зашифрованный контейнер для секретов SSH и конфигурации.
- Оформление и цветовые схемы.
- Полностью настраиваемые ярлыки и многоаккордные ярлыки.
- Дополнительный режим
quake
(консоль прикреплена к одной из сторон экрана).
- Дополнительная глобальная горячая клавиша для фокусировки/скрытия консоли.
Ещё один пример продвинутой консоли — Magit, но это специализированная консоль конкретно для работы с Git, то есть текстовый клиент для Git в Emacs.
Хотя это довольно старая программа (с 2008 года), но она показывает, насколько мощной и удобной бывает специализированная консоль «на стероидах». Насколько быстрее в ней запускаются те же команды Git, по сравнению с многочисленными GUI, а также по сравнению с обычной консолью.
На macOS из альтернативных терминалов можно назвать iTerm2 и Warp, под Windows и Linux — PuTTY, KiTTY, WezTerm и многие другие.
В качестве бонуса: небольшой список продвинутых инструментов командной строки для macOS.
Браузеры без GUI
Вообще, текстовые браузеры появились на заре веба до GUI, но потом про них забыли как про древний анахронизм. Однако сейчас эти образцы минимализма как будто переживают второе рождение.
Например, headless Chrome без графического интерфейса повсеместно используется для автоматизации скрапинга и ботов. Его же можно использовать в программах для автоматизации различных действий в интернете.
Браузер без GUI запускается командой
chrome —headless=new
.В последних версиях разработчики Chrome установили по умолчанию новый режим работы Headless, который раньше назывался Native Headless. Он значительно усложняет распознавание headless Chrome по отпечатку, по отсутствию плагинов или объекта
window.chrome
. Из юзер-агента убрали подстроку HeadlessChrome
.Было:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/111.0.5555.0 Safari/537.36
Стало:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
Впрочем, headless Chrome по-прежнему распознаётся с помощью JS-фингерпринтинга, хотя и сложнее, чем раньше.
Добавлены и новые флаги типа
--dump-dom
Например, такая команда отправляет DOM целевой страницы в stdout (после парсинга HTML и выполнения скриптов):chrome --headless=new --dump-dom https://habr.com/
Скриншот целевой страницы:
chrome --headless=new --screenshot --window-size=412,892 https://habr.com/
Сохранение страницы в PDF (по умолчанию создаётся файл
output.pdf
в текущей рабочей директории) по таймеру через 5000 миллисекунд:chrome --headless=new --print-to-pdf --timeout=5000 https://developer.chrome.com/
В новом режиме можно даже использовать удалённое инспектирование, если транслировать WebSocket URL в stdout:
chrome --headless=new --remote-debugging-port=0 https://developer.chrome.com/
… и удалённо подключиться к нему:
DevTools listening on ws://127.0.0.1:60926/devtools/browser/b4bd6eaa-b7c8-4319-8212-225097472fd9
Есть даже опция просмотра страницы в реальном времени:
▍ Kristall
В наше время редко появляются новые браузеры. Поэтому стоит сказать пару слов о Kristall, принципиально новом кросс-платформенном браузере, работающем только в текстовом режиме по новому интернет-протоколу Gemini, который легче и безопаснее обычного HTTP/HTTPS (для обратной совместимости оставлена поддержка старых интернет-протоколов HTTP, HTTPS, Gopher, Finger).
Да, формально у Kristall есть графический интерфейс и по ссылкам можно щёлкать мышкой, но этот браузер не поддерживает CSS/JS/WASM и графические сайты в принципе.
Репозиторий, официальный сайт со ссылками на стабильные релизы версии 0.3, а также на бета-версии под Windows и macOS.
Операционки
Благодаря набору Distrobox у нас есть доступ из консоли ко всем популярным дистрибутивам Linux с прямой и обратной совместимостью для любого софта.
Как можно догадаться, дистрибутивы запускаются из контейнеров Podman/Docker (по образцу Toolbox) и излишне потребляют память, но если проблем с производительностью нет, то выглядит это очень удобно. Контейнер тесно интегрируется с хостом, делит с ним пользовательскую папку
HOME
, внешние накопители, USB-устройства, окна (X11/Wayland) и аудиоканал.Демо:
Веб-сервисы
Многими веб-сервисами и приложениями можно пользоваться без всякого браузера, напрямую обращаясь к API и запуская команды из консоли. Например, программа ffsend для отправки файлов через сервис Send:
Поддерживается отправка файлов до 1 ГБ. Все файлы шифруются на стороне клиента, можно установить пароль. Время жизни файла в онлайне — до 20 загрузок или 24 часа с момента публикации.
Загрузка файла:
$ ffsend upload my-file.txt
https://send.vis.ee/#sample-share-url
Скачивание:
$ ffsend download https://send.vis.ee/#sample-share-url
Получение информации о файле:
$ ffsend info https://send.vis.ee/#sample-share-url
ID: b087066715
Name: my-file.txt
Size: 12 KiB
MIME: text/plain
Downloads: 0 of 10
Expiry: 18h2m (64928s)
Итог
Таким образом, из консоли можно загружать веб-страницы и любые файлы из интернета, торренты, инициировать чат, редактировать фотографии и видео, просматривать файлы разных форматов, читать эхо-конференции, получать и отправлять почту, управлять удалённым сервером, публиковать документы в открытом доступе, запускать любые программы и т. д.
В целом, консоль предлагает больше контроля, гибкости и эффективности, особенно для опытных пользователей, сисадминов и разработчиков.
Выиграй телескоп и другие призы в космическом квизе от RUVDS. Поехали? ????
Комментарии (92)
DmSting
12.07.2023 09:23+44Меня как "обычного" пользователя винды, который иногда ныряет в линух ради какого-нибудь nextcloud и homeassistant, захватывая по пути всю тонну зависимостей, типа настройки сети, выделения места на диске, создание резервных копий, синхронизация через synchting, организация какого-нибудь Pi-Hole и всяких таких мелочей - уж лучше бы мне дали гуй.
Я в состоянии что угодно сделать по инструкции из интернета, но ведь они в 90% случаев написаны в стиле "введите rm rf -a и нажмите Enter", и когда на любом из 100500 пунктов что-то идёт не так - начинается "весёлое" гугление с погружением в пучины англоязычных форумов. И через 3 потраченных часа становится понятно, что надо использовать другую команду, потому что инструкция писалась к старой версии дистрибутива.
А мне ведь просто нужно чтобы оно работало!
Консоль замечательный инструмент, но когда пользуешься им раз в 3 месяца по 10 минут - это боль и мучения.
dlinyj
12.07.2023 09:23+26Ровно те же ощущения, когда ты берёшь Ubuntu, OpenWRT, FreeBSD и прочий зоопарк дистрибутивов, и имеешь примерно одни и те же инструменты в совершенно разных ОС, и тут тебе надо в винде настроить что-то, и это боль и унижение. Лучше бы консоль сделали POSIX-совместимую.
Yapokhozhnakota
12.07.2023 09:23+3Все эти консольные команды напоминают мне труднопроизносимые и незапоминаемые заклинания из фильмов про Гарри Поттера.
oleg_rico
12.07.2023 09:23+2"Любая сложная высокая технология практически неотличима от магии"
Насколько помню фраза приписывается фантасту Айзеку Азимову.
Так что весьма вероятно что все эти волшебники из Гарри Поттера просто методом тыка нашли способы заставлять выполнять их команды какую-то систему наноботов.
Wesha
12.07.2023 09:23+1Любая достаточно развитая технология неотличима от магии.
— А. Кларк.Любая технология, отличимая от магии, недостаточно развита.
— Б. Гем.Любой человек, неспособный отличить технологию от магии, недостаточно развит.
— Я.* По мотивам
M_AJ
12.07.2023 09:23В основном это сокращения. mv – move, ls – list, lsblk – list block и так далее.
Dominux
12.07.2023 09:23+7Абсолютно те же проблемы и при использовании GUI
Когда не можешь найти, как сделать что-то и тоже "начинается веселье" - гуглишь, как же тебе сделать то или иное действие, какую череду из менюшек и кнопочек нужно пройти. И это редко работает, ведь у твоего ПО было много версии где "профессионалы-дизайнеры" поперемещали кнопки и теперь есть +100500 туториалов под все версии этих конфигураций кроме конечно же твоей ????
Это прям дико бесит
DmSting
12.07.2023 09:23+2О да!
Моё любимое - когда есть инструкция, и даже с картинками последовательности действий. Но в самом ПО тот же экран выглядит по другому!
Но всё-таки в нормальном ГУЕ хотя-бы есть подписи и подсказки к совершаемым действиям.
j_larkin
12.07.2023 09:23В консоли тоже есть подсказки и, чаще всего, более информативные чем в гуе. Вызываются запуском программы с ключом h
domix32
12.07.2023 09:23+1Хороший TUI решает проблемы не выходя из терминала, правда тех туёв не сказать чтобы достаточно много.
aitras
12.07.2023 09:23+4Во-вторых, запускать команды с клавиатуры можно практически вслепую, не глядя на экран, с мышечной памятью горячих клавиш и автодополнением.
Что-то странное.. Если не смотреть на экран, то как увидеть какие автодополнения подставляются? Если это опечатка и можно не смотреть на клавиатуру, то при использовании GUI я тоже могу не смотреть на клавиатуру.
arokettu
12.07.2023 09:23Думаю имеется в виду типа на моей системе
goo<tab><enter>
запустит Хром. Это будет работать более-менее до тех пор пока я не поставлю другую утилиту от Гугл что сломает гарантированный автокомплит
MikhailZakharov
12.07.2023 09:23+12Должно быть и мнение, почему консоли не могут использоваться в большинстве приложений
Требуется обучение. Правильно сделанный интерфейс не требует заучивания команд. Таким образом получается низкий порог входа, что важно для бизнес-приложений. Сравните markup/TeX и Word
-
Консоль может применяться в меньшем количестве случаев, чем количество применений ПО. Например, области для которых консоль не применима
Валидация распознанных документов, где надо сопоставлять поля и данные
Медицинское ПО, включая встроенное: анализ снимков, срезов тканей
Проектирование (чертежи)
ПО управления техникой: самолеты, трактора, комбайны
Музыкальное ПО, включая отладку звука режиссером
Работа с таблицами в современных сценариях, с динамическим изменением данных сводных таблиц
Мониторинг изменения состояний в динамике, сравнение данных за период
Логистика, диспетчерское ПО
Консоль хоть и является типом интерфейса, но имеет свои особенности в зависимости от ПО или системы. В одних системах подход к командам один, в других - другой. В визуальном интерфейсе кнопка везде нажимается
Cerberuser
12.07.2023 09:23+7Сравните markup/TeX и Word
передёрнуло от воспоминаний, как мы искали в Word нужную опцию для форматирования сносок, а потом методично её везде применяли
Лучше уж TeX)ganzmavag
12.07.2023 09:23В новых версия Word попроще стало, там нормальный поиск появился, где ты пишешь что хочешь, а он сразу выдает пункт меню для этой фунции.
DerRotBaron
12.07.2023 09:23+3А локаль там тоже переведена машинным переводом, как и во всем остальном от MS?
Если да, то ничего кроме en_US использовать все равно не получится
i86com
12.07.2023 09:23+2Ввод текста с клавиатуры ощущается быстрее, чем работа с визуальным UI, потому что там меньше видимых моментов простоя.
Помню, была одна игрушка, где нужно было (помимо прочего) время от времени вводить простые предложения типа "чем дальше в лес, тем больше дров". И среди игроков ходил "чит" - текстовик, в котором были все возможные варианты этих предложений (около 30).
Помню, я в то время посмеялся над подобным "читом", мол я весь такой компьютерщик, смогу быстрее на клаве набрать, чем альт-табаться из игры (два монитора тогда почти ни у кого не было), искать глазами нужный текст, выделять, копировать, потом возвращаться, вставлять.
А потом провёл замеры - и, оказалось, что "мышкой" просто быстрее, хоть по ощущениям и казалось строго наоборот. Даже несмотря на все очевидные задержки (и тормоза тогдашнего железа) и даже если специально не спешить с кликами.
Sixshaman
12.07.2023 09:23+3We've done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
Test subjects consistently report that keyboarding is faster than mousing.
-
The stopwatch consistently proves mousing is faster than keyboarding.
Напомнило.
ris58h
12.07.2023 09:23На каких задачах хоть рассказали?
not-allowed-here
12.07.2023 09:23а без разницы - комбинированная работа в текстовом редакторе с GUI с мышью на 30% быстрее примерно, но туту есть и другая сторона если чисто набирать текст - то прирост уже не столь велик 12-15%, а если править уже набранный то до 60%..... А если чисто в консоли когда только текст без кнопок тот у мышка дает +5-7% (колесико и выделение для копирования)....
Так что можно выделить две таких ключевых Области - "Панорамирование" - которое существенно быстрее делать мышью(+30-60%) и "Последовательная работа" - где выигрыш не столь существенен(+12-20%). И Отдельно наличие GUI делает мышь почти обязательной даже если этот GUI в текстовой консоли.....
еще интересный опыт поработать хотя бы неделю с минимумом мышки - заставляет изучать софт и понимать Как оно устроено и работает...
ris58h
12.07.2023 09:23Мне интересно что в исследовании было. Пытаюсь представить задачу где пользователи с уверенностью говорят что на клавиатуре быстрее, а потом оказывается что нет.
Upd: некоторые подробности тут https://www.asktog.com/TOI/toi06KeyboardVMouse1.html
Исследование конца 80-х. Как я понял, многие из участников исследования тогда мышью вообще не пользовались:
People new to the mouse find the process of acquiring it every time they
want to do anything other than type to be incredibly time-wasting.
M_AJ
12.07.2023 09:23+8Ну да, все эффективно работал в консоли, а потом пришли корпорации, увидели эту эффективность, и решили всех обмануть, чтобы заставить их стать неэффективными. Оказывается легенды нам не врут, так все и было:
И сидели они оба под голым ДОСом и не стыдились.
Билл был хитрее всех зверей полевых.
И сказал Билл юзеру: подлинно ли сказал Бог: не запускайте
никакого софта?
И сказал юзер: всякий софт мы можем запускать, и лишь из
каталога Windows не можем, ибо маст дай.
И сказал Билл юзеру: давайте спорить о вкусе устриц с теми,
кто их ел!
В день, когда запустите Windows, будете как боги, ибо одним
кликом мышки сотворите что угодно.
И увидел юзер, что винды приятны для глаз и вожделенны, потому
что делают ненужным знание, и поставил их на свой компьютер; а
затем сказал программисту, что это круто, и он то же поставил.А если серьезно, консолью хорошо пользоваться, когда ты точно помнишь что делаешь. Графический интерфейс можно сделать самодокументируемым – скрывать неподходящие значения параметров, подсвечивать заведомо неверные, сообщать об обязательных. В случае с консолью, я пойму что что-то забыл или перепутал только после того, как команда вернет мне ошибку, а чтобы узнать например диапазон возможных аргументов, если я вдруг его забыл, нужно открыть документацию и найти соответствующий раздел.
Alexey2005
12.07.2023 09:23+2Я вот кстати не понимаю, почему в консоли до сих пор нет всего того, что есть в любой современной IDE?
Скажем, если я пишу в нормальной IDE скрипт на Python, то у меня будут и всплывающие подсказки с аргументами, и справка по нужному аргументу легко вызывается, и мне даже подскажут, что вот тут возможно ошибка — ожидается число, а я чего-то подставляю список.
Мало того, я могу одним кликом перейти в любую точку набираемого текста, у меня будет автоввод парных кавычек и скобочек (и их подсветка!), возможность поиска/замены по строчке, ну и т.д.Консоль выглядит такой недо-IDE для разработки примитивных скриптов, только вот её возможности так и застряли где-то в 80-х годах прошлого века. GUI развивается, а тут развития ровно ноль.
not-allowed-here
12.07.2023 09:23технический сложно реализовать такое именно в консоли которая работает Без графического режима - да и просто тогда консоль плавно превращается в GUI......
nin-jin
12.07.2023 09:23Не GUI, а TUI. Во времена доса довольно популярная тема. Старина Борланд не даст соврать. Концепция CLI - это аналог современных чатботов, то есть текстовый диалог без произвольного интерактива.
Ingeniosus
12.07.2023 09:231) bpython все подствечивает.
2) если привыкнуть, то как раз управление вим-стайл быстрее. (мотать по строкам, словам, конец/начало слова/параграф и тд)
3) у того же вима и имакса есть настройки, чтобы получить желаемое.
Я пишу код в 99% в терминале, но когда не знаю, то все же перешлю например себе тот же hardinfo по x11, чем буду вспоминать, как получить ту же инфу командой.
M_AJ
12.07.2023 09:23Я вот кстати не понимаю, почему в консоли до сих пор нет всего того, что есть в любой современной IDE?
Несколько причин. Про одну уже сказали, это относительная сложность реализации этого в чисто текстовом режиме, но это на мой взгляд не главная причина. Основная в том, что консоль это инструмент для запуска сторонних приложений, и чтобы она подсказывала допустимые параметры, нужно договориться о каком-то формате, к котором приложение передаст консоли список допустимых параметров. Ну и да, консоль, а точнее эмулятор телетайпа, это очень старый подход, он был придуман еще когда к компьютерам подключали те самые телетайпы, которые не выводили информацию на экран, а печатали на бумаге.
Вообще конечно инструменты командной строки тоже развиваются, есть например оболочка zsh, но развитие все равно довольно робкое.
COKPOWEHEU
12.07.2023 09:23Скажем, если я пишу в нормальной IDE скрипт на Python, то у меня будут и всплывающие подсказки с аргументами, и справка по нужному аргументу легко вызывается, и мне даже подскажут, что вот тут возможно ошибка — ожидается число, а я чего-то подставляю список.
Потому что операторы в командной строке это сторонние программы. Откуда интерпретатору узнать что они умеют и какие параметры ожидают? Хотя вроде бы какой-то протокол придумали. То ли шелл запускает программу с ключом --help и парсит вывод, то ли еще что-то. Как бы то ни было, уж слишком много и старого софта, и стороннего.
Alexey2005
12.07.2023 09:23-1Но когда вы в Python пишете import some_package вы тоже подгружаете сторонний пакет, которых сейчас столько, что никакая IDE не сможет просто внести в свою базу их все. Однако же, каким-то образом IDE выцепляют всю нужную метаинформацию из таких пакетов и выводят подсказки по функциям и методам.
Cerberuser
12.07.2023 09:23+1Потому что у этих пакетов есть стандартные, на уровне языка, способы описания этой самой метаинформации.
COKPOWEHEU
12.07.2023 09:23+1Но когда вы в Python пишете import some_package вы тоже подгружаете сторонний пакет
При формировании питоньих пакетов наличие соответствующих полей — обязательное требование. А попробуйте внушить какому-нибудь Майкрософту, что ихний браузер должен обязательно поддерживать ключ --help и выдавать строго специфицированный список флагов и допустимых значений.
domix32
12.07.2023 09:23Neovim + lsp и оно в принципе должно работать в определённой мере. Но есть нюансы.
13werwolf13
12.07.2023 09:23+10Например, Tabby — «бесконечно» расширяемая консоль с поддержкой вкладок.
тот момент когда даже не надо тестировать чтобы понять что оно ужасно и не применимо, достаточно только посмотреть на чём оно написано
при том все те же задачи решает почти любой эмулятор терминала, например konsole, оставаясь при том куда более шустрым, легковесным и главное нативным приложением при том что в него тоже напихали "лишнего" функционала.
DuDDiTs
12.07.2023 09:23+2VS code не ужасен и очень даже применим. Но при этом TS там используется еще больше.
Тут скорее вопрос прямоты рук разработчиков.mrsantak
12.07.2023 09:23+1VS code не ужасен и очень даже применим. Но при этом TS там используется еще больше.
Тот самый VS Code который одно время умудрялся миганием курсора выжирать одно ядро CPU?
DuDDiTs
12.07.2023 09:23+2Да, тот самый. И сейчас он по прежнему написан на TS, но работет при этом быстро и стабильно.
Что возвращает нас к прямоте рук разработчиков. Память можно и на C выжигать.
13werwolf13
12.07.2023 09:23-1ну во первых vscode ужасен, лично у меня к нему есть немалый список претензий, но не будем тут менять тему разговора.
во вторых я признаю что vscode пожалуй лучший софт из того что есть на ts/js/electron/etc, но это нисколечки не говорит о том что теперь эти фреймворки оправданы и больше не должны вызывать рвотные позывы. просто у кого-то получилось сделать из говна что-то отдалённо похожее на конфетку. как гавнокодить можно на любом хорошем ЯП так и попытаться выжать всё возможное из любого отвратительного ЯП ничто не мешает, вопрос в том стоит ли игра свеч (спойлер: нет).
domix32
12.07.2023 09:23+1Запустил тот Tabby, потыкал и похоже там у них какая-то парабола вместо рук, ибо работает заметно медленее, плюс какие-то проблемы ни то с альясингом шрифтов ни то просто с рендерингом - видимо без аппаратного ускорения не подходи. А если ещё и мультиплексер какой запустить, то тормоза увеличиваются до секунд. VS code себе такого точно не позволяет.
Ну и сам Tabby отожрал 300+ метров диска, что как минимум подозрительно.
microArt
12.07.2023 09:23В последнее время немного вожусь с openWrt. На мой личный взгляд, по удобству использования намного лучше web-интерфейс, чем простая консоль. Команды опять же, надо помнить. (Я для себя составила список и копирую нужные команды оттуда - так проще).
Хотя консоль быстрее, чем web-интерфейс, это правда. Но эти зачастую непонятные команды... Хочется простого визуального интерфейса.
Например, для конвертации видео/аудио ffmpeg. Чтобы можно было выбрать нужный файл, указав его, указать параметры конвертации и запустить нажатием по кнопке. А не копируя непонятные команды в терминал (с заменой пути к файлам).
А так да, романтично. Можно даже немного почувствовать себя почти хакером. :-)khajiit
12.07.2023 09:23+1Например, для конвертации видео/аудио ffmpeg. Чтобы можно было выбрать нужный файл, указав его, указать параметры конвертации и запустить нажатием по кнопке
Это же handbrake, нет?
Толкьо что он не консольный.microArt
12.07.2023 09:23Мне бы что-то похожее, как вот это:
https://evanhahn.github.io/ffmpeg-buddy/
Только запускается из web-интерфейса openWrt с возможностью выбора файла с подключенного внешнего диска.
А пока просто копирую команду из своей шпаргалки в терминал, подставляя нужные мне пути к файлам.
vagonovozhaty
12.07.2023 09:23+4Самая хакерская консоль, под все платформы, даже на клавиатуру можно не смотреть:
kinall
12.07.2023 09:23+16Скажите, а этот пост вы писали из консоли?
polar_yogi
12.07.2023 09:23+3Зашел оставить подобный коментарий. Добавлю, что все скриншоты в статье сделаны из GUI.
0xd34df00d
12.07.2023 09:23Я все свои посты пишу из консоли в (neo)vim в маркдауне. Свой персональный блогосайт сделал там же (и на хаскеле). А почему вы спрашиваете?
kinall
12.07.2023 09:23А вы автор? Тогда скажитe, пожалуйста, как вы дeлали скриншоты для нeё?
0xd34df00d
12.07.2023 09:23+1Автор, но не этой статьи :]
Скриншоты для тех статей, где они были нужны, делал scrot'ом. Записи видео (например, здесь) делал ffmpeg'ом.
Emulyator
12.07.2023 09:23+3К чему такие обобщения? Что-то удобнее делать в одних программах, что-то в других, зачастую основной критерий сравнения - привычка.
UncleBob13
12.07.2023 09:23+4Каждый, кто привык работать в консоли, согласится — запускать команды из командной строки в большинстве случаев быстрее, чем из GUI
Также как и каждый, кто привык работать с гуем, согласится - запускать команды нажатием кнопки или хоткея в большинстве случаев быстрее, чем вводить их в консоль ¯\_(ツ)_/¯
Во-вторых, запускать команды с клавиатуры можно практически вслепую, не глядя на экран, с мышечной памятью горячих клавиш и автодополнением.
А при использовании гуя можно не смотреть на клавиатуру и мышечной памятью жать хоткеи с использованием автодополнения.
Проще говоря, что через консоль, что через гуй работать одинаково быстро. Разница лишь в том, кто к чему привык. Кому-то проще кнопку нажать, а кому-то ввести команду или её алиас. Всего-лишь дело привычки.
chaynick
12.07.2023 09:23+4Каждый кто говорит что х всегда лучше чем у или заангажирован или не разбирается в вопросе. Автор, вы из каких?
P.S. Берем файловую шару в лине с массой вложенных папок, да с пробелами в именах папок и задачей скопировать один файл из известной директории n глубины вложенности. В GUI это сделать в разы быстрее, даже на порядки.
P.S. nano - это не трушный консольный редактор, по сути он тот же визуальный. трушный - awk, как часто вы через него редактируете? И как это быстро происходит.
Sild
12.07.2023 09:23Для таких случаев будет кстати вспомнить find и grep, чтобы не вытаскивать по директории из автодополнения)
EvilShadow
12.07.2023 09:23+2awk - это не текстовый редактор. `man gawk` говорит нам, что это `pattern scanning and processing language`.
А текстовый редактор - это vim или emacs (или даже vim+emacs, как в doom emacs). И их пользователи редактируют через них очень часто.
domix32
12.07.2023 09:23nano - это не трушный консольный редактор, по сути он тот же визуальный.
А вы можете гуй VS Code в комментарий скопировать? А nano может позволить это со своим интерфейсом.
$ nano
GNU nano 5.4 New Buffer ^G Help ^O Write Out ^W Where Is ^K Cut ^T Execute ^X Exit ^R Read File ^\ Replace ^U Paste ^J Justify
TUI это консольный интерфейс, который только прикидывается визуальным.
Format-X22
12.07.2023 09:23На тему непонятных кнопок без инструкции - всё просто до тех пор пока не xcmdnr -twb —aa4=86
Lazhu
12.07.2023 09:23nano - это не трушный консольный редактор, по сути он тот же визуальный. трушный - awk, как часто вы через него редактируете?
nano это однозначно залет. А awk это не редактор, а текстовый процессор, трушный редактор это vim (или чистый vi для мазохистов)
AntoineLarine
12.07.2023 09:23Классический случай профдеформации и логических ошибок. То что консоль однозначно лучше в некоторых применениях для ИТ-специалистов, совершенно не означает, что GUI плох для всех пользователей.
Вообще, разработка хорошего, удобного и отзывчивого UI, что графического, что консольного - это та ещё задача, на которой часто экономят.
quwarm
12.07.2023 09:23В каких терминалах можно курсор устанавливать кликом мыши?
Например, пишу одну большую строку для выполнения и хочу поставить курсор в нужное место. Мышкой - один клик, но приходится нажимать на кнопки клавиатуры.
Кроме того, можно ли в таком терминале удалить выделенную курсором часть команды?
serge-sb
12.07.2023 09:23+7Начало статьи напомнило "Опустим обычную газету в серную кислоту, а тв-парк - в дистиллированную воду". И ещё, раз уж git упомянули. Я пользуюсь Far'ом, консоль вроде вот она, под рукой. Но удобнее поставить tortoise-git и пользоваться кнопкой "свойства" и далее нужной горячей кнопкой, чем в тысячный раз набирать "git ...". Сравнения, разрешения конфликтов - всё проще и нагляднее в графическом интерфейсе.
Ещё (обобщённый/типичный) пример: в графическом интерфейсе есть структурированное главное меню с пунктами. В текстовом интерфейсе аналогичной программы был бы -help, который вываливал на тебя вообще все пункты, а также подпункты и параметры для них.
Да, для автоматизации консольная версия программы - незаменимая штука. Но для пользования человеком - я предпочту графический интерфейс. Ну и есть разные программы, которыми в принципе невозможно пользоваться через консоль. Audacity, Gimp, Blend...
oleg_rico
12.07.2023 09:23Консоль - это конечно очень круто, но поверьте человеку, который начинал работу с компьютером, когда кроме командной строки вообще ничего не было.
Графический интерфейс - это просто офигительная штука. Он позволяет значительно быстрее освоить нужные вещи.
beeruser
12.07.2023 09:23Автоматизация Как мы уже отмечали, для консоли можно создавать скрипты и автоматизировать задачи.
Вы судите только по виндо-линуксам. На Amiga был общесистемный язык ARexx (Amiga Rexx), к примеру. Он позволял автоматизировать и управлять гуёвыми программами в реальном времени, а не примитив типа запускать утилитки с аргументами из батников.
domix32
12.07.2023 09:23А был ли там честный гуй?
beeruser
12.07.2023 09:23Это как? Нечестный гуй, это который обманывает пользователей что-ли?
Гуй как гуй
https://www.youtube.com/watch?v=WyFpPll91gU
(это Scalos - расширение стандартного Amiga Workbench)
domix32
12.07.2023 09:23Честный это когда у тебя не псевдографика из спецсимволов, а полноценные окошки. И указатель есть, а не просто курсор. Судя по видео, таки да, честный.
А по теме автоматизации - WinAPI и всякие VBScript позволяют делать что-то похожее, разве что не всегда это удобно делать. А на linux/bsd народ просто свои менеджеры окон пишут.
Wesha
12.07.2023 09:23И указатель есть, а не просто курсор.
Путём несложного колдунства с динамическим переопределением знакогенератора Norton Utilities, кажется, седьмой версии имели "честный" мышиный курсор-стрелочку а-ля Windows в текстовом режиме экрана.
Inoriol
12.07.2023 09:23+3Как будто кто-то мешает пользоваться консолью в внутри гуёв и совмещать визуальную автоматизацию со скриптовой. Плюс повсеместно развитие RPA сейчас позволяет автоматизацией даже очень далёким от этого людям заниматься. Но даже без этого, скажем, в винде набросать Powershell скриптик автоматизации и сделать на формах ему интерфейсик для юзверей это вообще не проблема.
Главный минус всех консольных интерфейсов это отсутвие стандартизации и крайняя лёгкость совершить ошибку. То есть мало того что каждого приложения свой синтаксис который нужно изучать и помнить, так ещё и --help или man часто не дают тупо примеров использования. В результате консоль мощна, но абсолютно непригодна когда нужно сделать что-то здесь и сейчас сходу.
Правильно сделанный интерфейс, который учитывает что юзер скорее всего будет хотеть и как часто, скорее всего будет в миллион раз пригоднее и быстрее для подавляющего числа юзверей.
ptr128
12.07.2023 09:23Вообще-то надо смотреть от задачи. В случае простых операций GUI может быть удобней. Но во главе у нас все равно остаётся скрипт. Не важно, что это - bash, cmd, powershell, perl, sql, yaml. Именно скрипт позволяет автоматизировать процессы, начиная от CI/CD, включая GitOps, и заканчивая просто строкой для пользователя, вместо многостраничной инструкции со скриншотами.
Alexey2005
12.07.2023 09:23Скрипт автоматизации можно и на AutoIT написать, так что GUI тоже автоматизируется весьма неплохо.
ptr128
12.07.2023 09:23Уже интересно. Можно пример реализации CI/CD со сборкой в контейнере k8s на AutoIT?
RedHead
12.07.2023 09:23+1Как по мне, дело не в консоле, а в управлении только с клавиатуры. При некотором уровне навыка, так действительно гораздо быстрее. Но есть интерфейсы, которые совсем не подходят для only_keyboard. Типа вебсерфинга. Понятно что есть плагины типа vimium, но это так себе.
Вот если был бы общий договор, создавать вторую "текстовую" версию сайта, для браузеров типа links2, то было бы вполне ничего. Да и дофаминовая система бы отдыхала.
serj_woyt
12.07.2023 09:23Не соглашусь, именно vim и vimium подтолкнули в итоге к only keyboard.
Гораздо удобнее и быстрее юзать: f [a-zA-Z] + остальные команды vimium и хоткеи браузера, типа jk; yt; <ctrl><shift> a; <tab>; <shift><tab>, <ctrl>t, <ctrl>w
+ это повышает точность, а также замечательно работает в SPA, таких как, ютюб, Discord, почтовые клиенты и прочие джиры.
Теперь хочу вимовские биндинги на уровне операционных систем, чтобы f[a-zA-Z] и прочее абсолютно везде, а не только в браузерах, ide, и vifm.
Но есть нюанс: весело и удобно, только если владеешь слепой печатью и не ищешь куда нажимать, иначе магии не будет.
Alexey2005
12.07.2023 09:23Клавиатура абсолютно не годится для быстрого выделения кусков текста. Ловлю себя на том, что даже в vim предпочитаю для выделения (Visual Mode) сделать два клика мышью. И это оказывается намного быстрее и создаёт меньше нагрузки на мозг, чем мысленно прикидывать, какую команду использовать для установления границ выделения. То ли подсчитать количество слов для прыжка, если их немного, то ли прыгнуть к ближайшей точке, то ли к нужной комбинации символов...
serj_woyt
12.07.2023 09:23На Винде включил эмуляцию мыши с помощью Numpad, теперь выделить слово в браузере - это 5,5 на нампаде, а выделить абзац - это 5,5,5, то есть это эмуляция ЛКМ. Далее, если нужно выделить точнее, больше, то через <shift><home><end><arrows>
В vim с выделением кода также всё норм, cо временем даже не задумываешься, что нажимать, а вот мышкой то же самое я уже делать не хочу, хотя всю жизнь работал с мышью. Допустим, normal_mode c переходом в visual_mode:
viw чтобы выделить слово, <esc>
<shift> v чтобы выделить строку, <esc>vw чтобы выделять по словам вперед, <esc>
vf ; чтобы точно указать выделение вплоть до буквы вперед, <esc>
v$ чтобы выделить от курсора до конца строки, <esc>
v^ чтобы выделить от курсора до начала строки, <esc>
vi( чтобы выделить всё внутри ( ), <esc>
vi{ чтобы выделить всё внутри { }, <esc>
и т.п.Конечно, если это всё вызывает страдания и неудобства, то и мучиться не нужно.
aabzel
12.07.2023 09:23Консоль особенно хороша в Embedded разработке.
В программировании микроконтроллеров.
Про это есть даже отдельный текст.
https://habr.com/ru/articles/694408/
Называется "Добавьте в Прошивку Гласность".
aabzel
12.07.2023 09:23+2Я заметил одну тенденцию.
Те люди, которые говорят, что консоли якобы не нужны банально не понимают про что идет речь эти CLI никогда в своей жизни не видели (GUI поколение) и они просто не в теме.
К таким людям просьба относиться с пониманием.
Emulyator
12.07.2023 09:23Если пофилософствовать, то тенденции намекают, что останется командная строка для промтов вместо консоли и голосовое управление к ней вместо GUI, и все будут довольны, или, наоборот, будут с ностальгией вспоминать нынешнее разнообразие. )
arinoki
12.07.2023 09:23+1Интересно что упоминаются различные обёртки над powershell/cmd/etc, но не упоминается windows terminal, который собсно из коробки уже доступен в win11 (начиная с какой версии не скажу, ибо на canary-ветке, но тем не менее).
Gotcha7770
12.07.2023 09:23из магазина можно поставить preview версию, я на 10ке себе поставил, на 11, думаю, тоже можно
arinoki
12.07.2023 09:23Ну у меня вот на скрине вывод обновления софта через scoop ( https://scoop.sh ) - собственно можно и через него поставить как стабильную версию, так и preview windows terminal'a :) Так что и ms store не особо нужен.
remendado
12.07.2023 09:23+1Категорически не согласен. Только перфокарты. С клавы полно ошибок, то раскладка не та, то capslock нажат.
Konvergent
12.07.2023 09:23Можно долго холиварить, други, но вот за удаление подписей с хоткеями из менюшек и хинтов GUI - нужно кремировать... Может премировать? - неть)))
Linder666
Правильно, давайте к консоли прикрутим браузер, плеер, фотошоп и прочие нелегкие финтифлюшки
и оргии конейи потеряем главные преимущества консоли: быстро, просто, показательно