Quiero una forma de iniciar programas rápidamente mientras estoy en una terminal SSH. Pero no quiero tener que recordar el comando exacto. Por ejemplo, si escribo "fox" en kupfer/synapse/quicksilver o unity search, aparecerá firefox. Del mismo modo, si escribo "navegador", aparecerá Firefox.
¿Cuál es la línea de comando equivalente a esto? De modo que pueda escribir browser
y enumera firefox
en la terminal
Por supuesto, estoy familiarizado con presionar tabulador, pero eso supone que tengo las primeras letras correctas y no me permite escribir 'navegador'. Estoy familiarizado con findutils locate
comando, pero de nuevo, el mismo problema. Quiero una experiencia de escritorio fluida a través de mensajes de texto, como lynx
navegador ofrece una experiencia web a través de la consola.
Respuesta aceptada:
Hay varios shells de línea de comandos. Los principales para uso interactivo son:
- Bash, que es el shell predeterminado en la mayoría de las distribuciones de Linux. Su principal punto de venta es que es el predeterminado.
- Zsh es extremadamente potente y configurable.
- Fish tiene algunas características geniales listas para usar, pero muy poca personalización.
Es más probable que encuentre estas funciones avanzadas integradas en fish o proporcionadas en zsh a través de algún código de personalización (ya sea enviado con zsh o a través de un complemento de terceros). Desafortunadamente para ti, no creo que fish tenga nada ni remotamente parecido a lo que estás buscando, y tampoco conozco nada realmente bueno para zsh.
Buscando fox
En zsh, puede tener una finalización basada en escribir una parte del nombre. Cómo funciona eso depende de la configuración. Con la siguiente configuración, puede escribir *fox
y presiona Tab para obtener la finalización firefox
:
autoload -U compinit; compinit
zstyle ':completion:*' completer _expand _complete _match _prefix
Puede obtener esta configuración desde la pantalla de configuración que se muestra cuando inicia zsh sin un archivo de configuración. Es posible que desee jugar un poco con las opciones de configuración relacionadas con la finalización.
Buscando browser
Buscando browser
Es un problema muy diferente porque la información no se almacena en el mismo lugar. Obtener firefox
de fox
solo requiere mirar los nombres de los archivos ejecutables, mientras que la información que firefox
es un browser
tiene que venir de otro lugar.
Puede usar el comando apropos para buscar programas según la descripción de una línea en la parte superior de su documentación.
apropos browser
En cierto modo, esta es la respuesta oficial a su pregunta:es la forma de línea de comandos para buscar un programa en función de su descripción. Pero probablemente no lo encuentre tan conveniente por dos razones:
-
Hay muchos más programas de línea de comandos que programas que se pueden ejecutar de manera útil desde una GUI, por lo que hay mucho más ruido en
apropos
producción. Elapropos
el comando también le muestra las interfaces de programación; puedes cortar eso conapropos -s 1,8 browser
o
apropos -s 1 browser
para excluir los comandos de administración del sistema. Los números son secciones de la página del manual. -
Los desarrolladores de cada aplicación mantienen la descripción de una línea en la parte superior de la página del manual y no siempre usan la misma terminología. Entonces, a veces se perderá una aplicación porque su desarrollador usó una forma diferente de describirla. Por ejemplo, si desea buscar solo web navegador, puede ejecutar
apropos -a web browser
y encontrarías
lynx
yfirefox
, pero nolinks
porque se describe como un "navegador WWW".
La interfaz GUI para buscar aplicaciones se basa en .desktop
archivos Puede explorar estos archivos con comandos como
grep browser /usr/share/applications/*
Sería posible crear una interfaz de usuario además de esto, pero no tengo ninguna para ofrecer.