¿Hay alguna manera de determinar cómo iniciar cualquier programa desde la línea de comandos?

9

Incluso si no hay una interfaz cli. Me gustaría poder lanzarlo / matarlo desde la línea de comandos.

myusuf3
fuente
2
¿Podría explicar exactamente lo que quiere decir? ¿Desea saber cómo iniciar los programas que figuran en el menú de aplicaciones desde la línea de comandos?
Isaías
@DoR cualquier aplicación. Me gustaría saber cómo iniciar y acabar con él de cli
myusuf3

Respuestas:

18

Versión corta :

  • Encuentre el comando Exec para su aplicación seleccionando el directorio de aplicaciones

    grep 'Calculator' /usr/share/applications/*
    
  • Inicia la aplicación

    gcalctool
    
  • Mátalo golpeando Ctrl+C


Primero, averigüe dónde está su aplicación. Algunos directorios están en una variable de entorno $PATH, por lo que no tiene que escribir todo el directorio.

Una forma de encontrar su aplicación es abrir el Editor de menús (haga clic con el botón derecho en el Menú de aplicaciones y seleccione Editar menús) y busque el comando de la aplicación .

La calculadora, por ejemplo, está gcalctoolen /usr/bin/gcalctool(use el whereiscomando para encontrar la ruta exacta de una aplicación). Como /usr/binestá en la variable PATH (tipo echo $PATH), puede ejecutarla en su terminal escribiendo gcalctool.

Ahora se está ejecutando en primer plano. Puede pausarlo presionando Ctrl+ Z, reanudarlo en segundo plano escribiendo bgo reanudarlo en primer plano escribiendo fg. También puedes usar fgpara subir una aplicación al primer plano.

Si hace esto con múltiples aplicaciones, puede usarlas jobspara obtener una lista numerada de todas ellas, y luego usar, por ejemplo, fg 3para subir una de ellas.

Una aplicación que está en primer plano puede eliminarse con Ctrl+ Co Ctrl+ \(si no reacciona a la primera).

Una forma universal de encontrar su aplicación es abrir el Explorador de archivos, ir a Sistema de archivos → usr → compartir → aplicaciones y encontrar su aplicación allí.

Verá un montón de .desktoparchivos, que puede arrastrar a un Editor de texto (o usar cat) para leer. Esta es una parte del archivo .desktop de Calculadoras:

[Desktop Entry]
Name=Calculator
Comment=Perform arithmetic, scientific or financial calculations
Exec=gcalctool

La entrada de Exec es lo que le interesa aquí. Es lo mismo que verías si fueras al Editor de menús, solo que más rápido. Puede grep los archivos para buscar su aplicación, si no puede encontrarla.

Si la aplicación no tiene un archivo .desktop en el directorio de aplicaciones, debe saber que es un comando, por supuesto. Use TABpara obtener sugerencias de solo unas pocas letras. Presione tab, tab, ypara obtener una lista enorme de cada aplicación.

Stefano Palazzo
fuente
1
Otra forma es usar gnome-system-monitor y encontrar el logotipo de la aplicación + el valor de línea de comando correspondiente en la columna de la derecha.
Olivier Lalonde
2

Incluso cuando algunas aplicaciones usan el terminal para monitorear el proceso de un software, hay otros programas que simplemente se ejecutan y devuelven el control al terminal. Para que pueda cerrar la terminal manteniendo la aplicación en ejecución.

De esa manera, presionar Ctrl-C en la terminal, no detendrá la aplicación.

Puede usar el comando "killall" para detener el programa cuando enfrenta esa condición en un programa.

Por ejemplo: si está ejecutando kdenlive y deja de responder o desea (como usted dice) cerrar la aplicación usando un comando en la terminal, simplemente deje caer una línea como:

killall kdenlive

Puede hacerlo con cualquier otra aplicación, pero si está ejecutando más de una instancia del programa que se va a eliminar, todas las instancias del programa se cerrarán.

Si, por ejemplo, suelta: killall nautilus para cerrar el explorador de archivos, también está cerrando el explorador principal que se utiliza para la administración del escritorio.

Geppettvs D'Constanzo
fuente
0

Utilizando

gnome-open <file>

Abre cualquier archivo directamente desde la línea de comando en su aplicación predeterminada.

killall <programname>

Mata todos los procesos que involucran

Junkbot
fuente