Сделать Linux "GUI" в командной строке - PullRequest
17 голосов
/ 19 февраля 2010

Как создать программу Linux в интерфейсе командной строки, которая отображает приятный пользовательский интерфейс?

Например, когда я использую «wget» для загрузки файла из Интернета, я вижу прогресс загрузки вИнтерфейс командной строки.Как я могу это сделать?

Ответы [ 10 ]

15 голосов
/ 19 февраля 2010

ncurses - популярный вариант, есть API для множества языков программирования.

12 голосов
/ 19 февраля 2010

Взгляните на проклятия . Это библиотека для текстового интерфейса.

10 голосов
/ 19 февраля 2010

Базовый интерфейс можно получить с помощью \r для перехода к началу текущей строки.

Чуть более продвинуты медсестры .

Следующий шаг - Тритон .

4 голосов
/ 19 февраля 2010

Если вы хотите создать графический интерфейс для скриптов Bash или обернуть другие утилиты командной строки, вы можете использовать dialog ( man page ).

Здесьдва отличных диалоговых учебника для начала работы:

1 голос
/ 21 ноября 2011

Если вам нужен только индикатор выполнения, это можно сделать непосредственно с помощью простого print (который печатает строку), за которым следует символ возврата каретки (символ ANSI # 13), который помещает Вы вернулись в начале строки. Затем строку можно обновить, напечатав ее.

Для более сложных нужд ncurses действительно стандартный путь.

1 голос
/ 19 февраля 2010

Я бы не назвал отчет о продвижении wget «хорошим интерфейсом», но в любом случае классическая библиотека для создания графических интерфейсов без X Windows - это Linux и UNIX-системы: ncurses .

Недавно была запущена версия ncurses на C #, подробности смотрите здесь

0 голосов
/ 18 августа 2016

Вы можете просто использовать управляющие коды ANSI. Простой пример в bash

echo -e "\033[H\033[2J  \033[20;20H  \033[4mThis is a underlined line.\033[0m"
0 голосов
/ 19 февраля 2010

У wget на самом деле нет графического интерфейса, все, что я вижу, это то, чего вы уже можете достичь, используя stdout и echos (например, printf () или std :: cout)

В любом случае, для простых диалоговых окон типа MessageBox, но не ограничиваясь этим, также посмотрите на диалог

0 голосов
/ 19 февраля 2010

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

0 голосов
/ 19 февраля 2010

Если вы используете Mono, вы можете использовать MonoCurses

...