Comando Linux para listar todos los comandos y alias disponibles
¿Hay un comando de Linux que enumere todos los comandos y alias disponibles para esta sesión de terminal?
Como si hubiera escrito 'a' y presionado tab, pero para cada letra del alfabeto. O ejecutando 'alias' pero también devolviendo comandos.
¿Por qué? Me gustaría ejecutar lo siguiente y ver si hay un comando disponible:
ListAllCommands | grep searchstr
21 answers
Puede utilizar el bash(1) incorporado compgen
-
compgen -c
listará todos los comandos que podría ejecutar. -
compgen -a
listará todos los alias que podrías ejecutar. -
compgen -b
listará todos los built-ins que podrías ejecutar. -
compgen -k
enumerará todas las palabras clave que podría ejecutar. -
compgen -A function
enumerará todas las funciones que podría ejecutar. -
compgen -A function -abck
enumerará todo lo anterior de una sola vez.
Compruebe la página de manual para otras terminaciones que puede generar.
Para responder directamente a su pregunta:
compgen -ac | grep searchstr
Debería hacer lo que quiera.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-25 01:13:52
Añadir a .bashrc
function ListAllCommands
{
echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n' | sort -u
}
Si también quieres alias, entonces:
function ListAllCommands
{
COMMANDS=`echo -n $PATH | xargs -d : -I {} find {} -maxdepth 1 \
-executable -type f -printf '%P\n'`
ALIASES=`alias | cut -d '=' -f 1`
echo "$COMMANDS"$'\n'"$ALIASES" | sort -u
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 20:32:47
Existe el
type -a mycommand
Comando que enumera todos los alias y comandos en PATH PATH donde se usa mycommand. Se puede utilizar para comprobar si el comando existe en varias variantes. Aparte de eso... Probablemente hay algún script alrededor que analiza PATH RUTA y todos los alias, pero no sé nada de ese script.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:36:56
Utilice "which searchstr". Devuelve la ruta del binario o la configuración del alias si se trata de un alias
Editar: Si estás buscando una lista de alias, puedes usar:
alias -p | cut -d= -f1 | cut -d' ' -f2
Agregue eso a la respuesta de búsqueda de RUTA que desee. Asume que estás usando Bash..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 01:28:23
Prueba este script:
#!/bin/bash
echo $PATH | tr : '\n' |
while read e; do
for i in $e/*; do
if [[ -x "$i" && -f "$i" ]]; then
echo $i
fi
done
done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:53:23
Es útil listar los comandos basados en las palabras clave asociadas con el comando.
Use: man -k "your keyword"
Siéntase libre de combinar con:| grep "another word"
Por ejemplo, para encontrar un editor de texto:
man -k editor | grep text
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-11-07 17:46:26
Intenta presionar ALT-? (alt y signo de interrogación al mismo tiempo). Dale un segundo o dos para construir la lista. Debería funcionar en Bash.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:50:15
Aquí hay una solución que le da una lista de todos los ejecutables y alias. También es portable a sistemas sin xargs -d
(por ejemplo, Mac OS X), y maneja correctamente las rutas con espacios en ellas.
#!/bin/bash
(echo -n $PATH | tr : '\0' | xargs -0 -n 1 ls; alias | sed 's/alias \([^=]*\)=.*/\1/') | sort -u | grep "$@"
Uso: myscript.sh [grep-options] pattern
, por ejemplo, para encontrar todos los comandos que comienzan con ls
, sin distinción de mayúsculas y minúsculas, haga:
myscript -i ^ls
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 01:50:56
Para los usuarios de Mac (find no tiene-ejecutable y xargs no tiene-d):
echo $PATH | tr ':' '\n' | xargs -I {} find {} -maxdepth 1 -type f -perm '++x'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-24 15:41:04
Método de acceso directo para listar todos los comandos. Abra el terminal y presione dos veces el botón"tab". Eso es mostrar todos los comandos en terminal
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-25 19:24:29
El comando others no funcionó para mí en sistemas embebidos, porque requieren bash o una versión más completa de xargs.
Los siguientes comandos deberían funcionar en cualquier sistema tipo Unix.
Lista por carpeta:
ls $(echo $PATH | tr ':' ' ')
Lista todos los comandos por nombre
ls $(echo $PATH | tr ':' ' ') | grep -v '/' | sort
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-07 09:17:53
Siempre puedes hacer lo siguiente:
1. Hold the $PATH environment variable value.
2. Split by ":"
3. For earch entry:
ls * $entry
4. grep your command in that output.
El shell ejecutará el comando solo si están listados en la ruta env var de todos modos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:39:11
Depende, con eso quiero decir que depende de qué shell está utilizando. aquí están las restricciones que veo:
- debe ejecutarse en el mismo proceso que su shell, para capturar alias y funciones y variables que afectarían a los comandos que puede encontrar, pensar RUTA o EDITOR, aunque el EDITOR podría estar fuera de alcance. Puedes tener variables no reportadas que pueden afectar cosas.
- es específico del shell o su salida al núcleo, /proc / pid / enviorn y sus amigos no tienen suficiente información
Uso ZSH así que aquí está una respuesta zsh, hace las siguientes 3 cosas:
- vuelca la ruta
- elimina nombres de alias
- vuelca funciones que están en el env
- los ordena
Aquí está:
feed_me() {
(alias | cut -f1 -d= ; hash -f; hash -v | cut -f 1 -d= ; typeset +f) | sort
}
Si usa zsh esto debería hacerlo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-20 14:56:58
Alternativamente, puede obtener una lista conveniente de comandos junto con descripciones rápidas (siempre que el comando tenga una página de manual, lo que la mayoría hace):
apropos -s 1 ''
-s 1 returns only "section 1" manpages which are entries for executable programs.
'' is a search for anything. (If you use an asterisk, on my system, bash throws in a search for all the files and folders in your current working directory.)
Entonces simplemente lo grep como quieras.
apropos -s 1 '' | grep xdg
Rinde:
xdg-desktop-icon (1) - command line tool for (un)installing icons to the desktop
xdg-desktop-menu (1) - command line tool for (un)installing desktop menu items
xdg-email (1) - command line tool for sending mail using the user's preferred e-mail composer
xdg-icon-resource (1) - command line tool for (un)installing icon resources
xdg-mime (1) - command line tool for querying information about file type handling and adding descriptions for new file types
xdg-open (1) - opens a file or URL in the user's preferred application
xdg-screensaver (1) - command line tool for controlling the screensaver
xdg-settings (1) - get various settings from the desktop environment
xdg-user-dir (1) - Find an XDG user dir
xdg-user-dirs-update (1) - Update XDG user dir configuration
Los resultados no parecen estar ordenados, por lo que si está buscando una lista larga, puede lanzar un | sort | en el medio, y luego canalizarlo a un buscapersonas como less/more/most. ala:
apropos -s 1 '' | sort | grep zip | less
Que devuelve una lista ordenada de todos los comandos que tienen "zip "en su nombre o su breve descripción, y las bombas que el" menos " buscapersonas. (También podría reemplazar "less" con P PAGER y usar el paginador predeterminado.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-11 08:08:58
El problema es que el tab-completion está buscando su ruta, pero todos los comandos no están en su ruta.
Para encontrar los comandos en tu path usando bash podrías hacer algo como:
Para x in echo $PATH | cut -d":" -f1
; do ls x x; done
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:42:59
Aquí hay una función que puede poner en su archivo bashrc:
function command-search { oldIFS=${IFS} IFS=":" for p in ${PATH} do ls $p | grep $1 done export IFS=${oldIFS} }
Ejemplo de uso:
$ command-search gnome gnome-audio-profiles-properties* gnome-eject@ gnome-keyring* gnome-keyring-daemon* gnome-mount* gnome-open* gnome-sound-recorder* gnome-text-editor@ gnome-umount@ gnome-volume-control* polkit-gnome-authorization* vim.gnome* $
FYI: IFS es una variable que bash utiliza para dividir cadenas.
Ciertamente podría haber algunas mejores maneras de hacer esto.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:58:59
Tal vez estoy mal entendido, pero lo que si se presiona Escape hasta que tienes la pantalla Todas las posibilidades X ?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 01:02:33
Comandos básicos:
Touch touch: - usuario para crear archivo vacío
Syn: - toque el nombre del archivo
Ex: toca rama
List ls lista de archivos y directorios
Listing ls-l Long listing
Tipo de archivo, permisos, archivos de enlace, nombre de usuario(o)propietario, nombre de grupo, tamaño de archivo, marca de tiempo, nombre de archivo o dir.
- archivo regular (o) normal
D directorio
L archivo de enlace
Ls-a: muestra el todo (incluyendo los archivos ocultos)
Archivos ocultos y los directorios comienzan con . (dot)
Buscar más comandos @ http://k2schools.com/linux-commands /
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-11 06:50:11
compgen -c > list.txt && wc list.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-05 04:55:56
¿Por qué no escribes:
seachstr
En la terminal.
La cáscara dirá algo como
seacrhstr: command not found
EDITAR:
Ok, tomo el voto negativo, porque la respuesta es estúpida, solo quiero saber: ¡Qué hay de malo con esta respuesta!!! El preguntador dijo:
y ver si hay un comando disponible.
Escribiendo el comando le dirá si está disponible!.
Probablemente él / ella quiso decir " sin ejecutar el orden " o "para incluirlo en un guión" pero no puedo leer su mente (no es que no pueda regularmente, es solo que él está usando un deflector de lectura mental )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:57:33
En debian: ls / bin / / grep"whatImSearchingFor"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-04 00:37:41