¿Cómo obtener una lista de todos los comandos disponibles para Ubuntu?


22

Quiero comenzar a usar el terminal con más frecuencia, pero no sé cuáles son los diferentes comandos disponibles para mí. ¿Hay alguna manera de enumerar todos los diferentes comandos que puedo usar?

Respuestas:


25

Primer método

NB : Gracias a @Rmano. Este método no funciona con zshshell.

Un comando simple:

ls ${PATH//:/ }

Esto enumerará todos los comandos en su $PATHvariable de entorno.

Para almacenar el resultado en un archivo, puede redirigir la salida a un archivo.

ls ${PATH//:/ } > mycommands.txt

Tenga en cuenta que esto devolverá un error si algún nombre de directorio en su $PATHcontiene espacios. En ese caso, use esto en su lugar:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

Segundo método

También puedes usar:

compgen -c | sort -u > commands && less commands

Tercer método

Otro método es Tabhacer doble clic.

Cuarto método

Otro método usando el findcomando:

find {,/usr}/{,s}bin -printf '%f\n\0'

Observe que el primer comando funciona bashpero no en zsh, que tiene la división de palabras deshabilitada de manera predeterminada. refining-linux.org/archives/38/…
Rmano

11

Si está utilizando bash, que es el shell predeterminado en todos los sabores oficiales de Ubuntu, ejecute compgen -cpara ver los comandos disponibles, incluidos los alias.


¿Eso es solo bash?
Braiam

1
Incluso los comandos para programas basados ​​en GUI están incluidos. Entonces, si lo hace compgen -c | grep thunary tiene instalado el administrador de archivos Thunar, también verá los comandos relacionados con Thunar.

1
Mmm ... no funciona en Debian. ¿Qué paquete proporciona eso?
Braiam

2
@Rinzwind que lo explica, estoy usando zsh.
Braiam

1
@ vasa1: ¿Podría esta respuesta ser más general? Quiero decir que solo proporciona la solución para bash, pero como señaló Braiam, no funciona para zsh ... Si es posible, ¿podría expandir la respuesta para atender a un público más amplio? Obviamente solo si sabe la respuesta :-)
Aditya

4

Abra la terminal Ctrl+ Alt+ ty ejecute este comando:

whatis `compgen -c` | more 

Esto enumerará todos los comandos y una descripción simple de cada comando.

Si desea guardar la lista, puede redirigir el resultado a un archivo de salida

whatis `compgen -c` > listOfCommands.txt

Entonces, ¿por qué usé el comando whatis? El comando man whatisda:

Cada página del manual tiene una breve descripción disponible.
whatis busca los nombres de las páginas del manual y muestra las descripciones de las páginas del manual de cualquier nombre coincidente.

así que en palabras fáciles whatisda un general. descripción de cada comando


+1 para información adicional. whatis `compgen -c` | sort> listOfCommands.txt ayudará a entrar en la lista de clasificación.
Saurav Kumar

Otro comando útil: apropos <keyword>busca todos los comandos y su breve descripción y muestra los resultados
Aloso

3

Abra una terminal y presione la Tabtecla dos veces.


1
-1 porque esto no es estándar.
Lorenzo Ancora

@LorenzoAncora ¿por qué no es estándar? ¿No tiene Ubuntu todo el autocompletado con doble Tab como comportamiento estándar?
dadexix86

2
Predeterminado! = Estándar: en un futuro quizás tengamos una consola que no sea compatible con ese mecanismo, porque no es estándar; Además, el estándar TAB puede cumplir una función diferente. Un procedimiento estándar es enumerar el contenido de 'bin', porque es parte del estándar oficial de FHS y cualquier sistema Linux / Unix tiene ese directorio. La funcionalidad correcta (y la capacidad de la comunidad para ayudar a los usuarios) de Ubuntu está garantizada por el respeto de los estándares.
Lorenzo Ancora

Ok, gracias por la explicación :) Pensé que el comportamiento estándar de la doble pestaña en Ubuntu era enumerar el contenido de PATH :)
dadexix86

@LorenzoAncora El listado de los contenidos de cualquier directorio no se mostrará cerca de todos los comandos ejecutables. Al enumerar el contenido de todos los directorios PATH no se mostrarán los shell incorporados sin el ejecutable correspondiente (como cd). Al presionar Tab dos veces se superan ambas limitaciones severas. Si alguien hubiera preguntado cómo mostrar todos los comandos en un sistema GNU / Linux arbitrario, uno podría argumentar que la finalización de Tab no es una solución adecuada. Por supuesto, cualquier cosa podría cambiar en Ubuntu en el futuro, pero la probabilidad de que la pestaña se complete en el shell interactivo predeterminado desaparecerá es minúscula.
Eliah Kagan

2

Una lista de comandos depende en gran medida de lo que haya instalado, pero hay trucos para enumerar todos los comandos. Lo siguiente funciona en la mayoría de los depósitos tipo bourne:

  1. Presione Tabdos veces.
  2. Use findpara encontrar todos los ejecutables:

    find / -perm +x
    
  3. Enumere todos los archivos en los directorios binarios (podría estar incompleto):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    

1

Abra una ventana de terminal (el terminal GNOME está bien, también un xTerm configurado).
Sus opciones son:

  • Al presionar la TABtecla ("-> <-") dos veces, completará cualquier comando en la consola y, si la línea está vacía, obtendrá el número y los nombres de todos los comandos disponibles . Tenga en cuenta que puede requerir algo de tiempo y puede enumerar utilidades semiadministrativas. NOTA: esto no es un estándar, para una forma "cross-shell" vea las otras opciones.

  • Use man -k NAMEpara buscar un comando (o parte de él) y man COMMANDpara obtener el manual de ese comando. No todos los comandos tienen un manual del sistema; leer al hombre antes de usar cualquier utilidad administrativa siempre es una buena idea; Créeme.

  • Use Midnight Commander ( mc) para tener una buena GUI de consola (maldiciones) para administrar el sistema y el sistema de archivos. Puede que tenga que instalarlo desde su administrador de paquetes. No te preocupes Es un software seguro y extremadamente común.
    NOTA: Está hecho para cuando tiene confusión o dificultad para usar el sistema de archivos.

  • Úselo ls /bin | morepara conocer todos los ejecutables administrativos ejecutables ; ls /sbin | morepara ejecutables administrativos comunes .

  • Use ls /usr/sbin | morepara conocer todos los ejecutables de usuario ; ls /usr/sbin | moredará una gran lista de ejecutables y bibliotecas de usuario .
    NOTA: Si la salida de moremás de una página (pantalla completa), deberá desplazarse presionando "Page Up" y "Page Down" o la barra espaciadora.
    Puede usar COMMAND | grep TEXTpara filtrar la salida.

Si tiene más preguntas, comente aquí y no olvide marcar la marca al lado de la respuesta si le ayudé.
Que tengas una buena experiencia.


Por lo general, la mayoría de los ejecutables están en /usr/bin, que no has mencionado aquí. También hay /sbin, que contiene ejecutables que se usan a menudo para la administración del sistema, como usermody ifconfig. Y muchos sistemas también tienen otros directorios binarios, como /usr/gamesy /usr/local/bin. Consulte el estándar de jerarquía del sistema de archivos y man 7 hier. Es posible que desee expandir esto para mencionar directorios importantes para ejecutables además de /biny /usr/sbin.
Eliah Kagan

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.