used the that que pass operating informatica gui graphical commands cli linux user-interface command-line

the - Haga una “GUI” de Linux en la línea de comando



shell it (10)

¿Cómo crear un programa Linux en la interfaz de línea de comandos que muestre una interfaz de usuario agradable?

Por ejemplo, cuando uso "wget" para descargar un archivo de Internet, puedo ver el avance de la descarga en la interfaz de línea de comandos. ¿Cómo puedo hacer eso?


Echa un vistazo a las curses . Es una biblioteca para la interfaz de usuario basada en texto.


No llamaría el informe de progreso de wget como una ''gui agradable'', pero de todos modos, la biblioteca clásica para construir interfaces gráficas sin X Windows es Linux y los sistemas UNIX son ncurses .

Recientemente se ha iniciado una versión en C # de ncurses, consulte los detalles here


Prueba los curses, es una API bien documentada para la IU basada en texto. Además, hay muchos proyectos de código abierto que utilizan curses para que veas y aprendas


Puedes usar los códigos de escape ANSI. Un ejemplo simple en bash

echo -e "/033[H/033[2J /033[20;20H /033[4mThis is a underlined line./033[0m"



Si estás usando Mono, podrías usar here


Si solo necesita una barra de progreso, esto se puede hacer directamente con una print simple (que imprime la barra), seguido del carácter de retorno de carro (carácter ANSI # 13), que lo regresa al principio de la línea. La línea puede ser actualizada posteriormente imprimiendo sobre ella.

Para necesidades más complicadas, ncurses es, de hecho, el camino estándar a seguir.


wget realmente no tiene una GUI, todo lo que veo son cosas que ya puedes lograr usando stdout y echos (por ejemplo, printf () o std :: cout)

De todos modos, para cuadros de diálogo simples del tipo MessageBox, pero sin limitarse a eso, también vea el diálogo


ncurses es una opción popular, existen API para muchos lenguajes de programación.


Puede obtener una interfaz básica usando /r para ir al principio de la línea actual.

Un poco más avanzado es ncurses .

El siguiente paso es Newt .