internos - lista completa de comandos linux pdf
Comando de Linux para enumerar todos los comandos y alias disponibles (21)
¿Hay un comando de Linux que enumere todos los comandos y alias disponibles para esta sesión de terminal?
Como si escribiera ''a'' y presionara la pestaña, 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
¿Por qué no escribes:
seachstr
En la terminal.
La concha dirá algo así como
seacrhstr: command not found
EDITAR:
Ok, tomo el voto negativo, porque la respuesta es estúpida, solo quiero saber: ¡¡¡Qué está mal con esta respuesta !!! El autor de la pregunta dijo:
y ver si un comando está disponible.
¡Escribir el comando te dirá si está disponible !.
Probablemente él / ella quiso decir "sin ejecutar el comando" o "incluirlo en un guión", pero no puedo leer su mente (no es que no pueda regularmente, es solo que está usando un deflector de lectura mental )
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
}
Ahí está el
type -a mycommand
comando que lista todos los alias y comandos en $ PATH donde se usa mycommand . Se puede utilizar para verificar si el comando existe en varias variantes. Aparte de eso ... Probablemente haya algún script alrededor de $ PATH y todos los alias, pero no conozca ningún script similar.
Alternativamente, puede obtener una lista conveniente de comandos junto con descripciones rápidas (siempre que el comando tenga una página de manual, que la mayoría lo 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
rendimientos
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 | ordenar en el medio, y luego canaliza eso a un buscapersonas como menos / más / más. ala
apropos -s 1 '''' | sort | grep zip | less
Lo que devuelve una lista ordenada de todos los comandos que tienen "zip" en su nombre o su breve descripción, y bombea que el "menos" buscapersonas. (También puede reemplazar "menos" con $ PAGER y usar el paginador predeterminado).
Aquí hay una función que puedes poner en tu 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 utiliza bash para dividir cadenas.
Ciertamente, podría haber mejores maneras de hacer esto.
Aquí hay una solución que le da una lista de todos los ejecutables y alias. También es portátil para sistemas sin xargs -d
(por ejemplo, Mac OS X) y maneja correctamente las rutas con espacios en ellos.
ls $(echo $PATH | tr '':'' '' '')
Uso: myscript.sh [grep-options] pattern
, por ejemplo, para encontrar todos los comandos que comienzan con ls
, distingue entre mayúsculas y minúsculas, haz:
ls $(echo $PATH | tr '':'' '' '') | grep -v ''/'' | sort
Comandos básicos:
$ touch: - usuario para crear archivo vacío
Syn: - toque nombre de archivo
Ej: tocar rama
$ ls lista de archivos y directorios
$ ls –l listado largo
Tipo de archivo, permisos, archivos de enlace, nombre de usuario (o) propietario, nombre de grupo, tamaño de archivo, sello de tiempo, archivo o nombre de directorio.
- archivo normal (o) normal
directorio d
l archivo de enlace
ls –a: muestra el todo (incluidos los archivos ocultos)
Los archivos y directorios ocultos comienzan con. (punto)
encontrar más comandos @ http://k2schools.com/linux-commands/
El comando de los demás no funcionó para mí en los sistemas integrados, ya que requieren bash o una versión más completa de xargs.
Los siguientes comandos deberían funcionar en cualquier sistema similar a Unix.
Lista por carpeta:
#!/bin/bash
(echo -n $PATH | tr : ''/0'' | xargs -0 -n 1 ls; alias | sed ''s/alias /([^=]*/)=.*//1/'') | sort -u | grep "$@"
Listar todos los comandos por nombre
myscript -i ^ls
El problema es que la finalización de la pestaña está buscando su ruta, pero todos los comandos no están en su ruta.
Para encontrar los comandos en su ruta usando bash, podría hacer algo como:
para x en echo $PATH | cut -d":" -f1
echo $PATH | cut -d":" -f1
; hacer ls $ x; hecho
Es útil enumerar los comandos en función de las palabras clave asociadas con el comando.
Use: man -k "your keyword"
siéntase libre de combinar con: | grep "another word"
| grep "another word"
por ejemplo, para encontrar un editor de texto: man -k editor | grep text
man -k editor | grep text
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.
Método de acceso directo para enumerar todos los comandos. Abre el terminal y presiona dos veces el botón "pestaña" . Eso muestra todos los comandos en la terminal.
Para usuarios de Mac ( find no tiene -executable y xargs no tiene -d):
echo $PATH | tr '':'' ''/n'' | xargs -I {} find {} -maxdepth 1 -type f -perm ''++x''
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
Puedes usar el compgen
incorporado bash (1)
-
compgen -c
todos los comandos que podrías ejecutar. -
compgen -a
todos los alias que puedas ejecutar. -
compgen -b
todos los elementos incorporados que podrías ejecutar. -
compgen -k
todas las palabras clave que podrías ejecutar. -
compgen -A function
mostrará una lista de todas las funciones que podría ejecutar. -
compgen -A function -abck
enumerará todo lo anterior de una sola vez.
Consulte la página del manual para otras terminaciones que puede generar.
Para responder directamente a su pregunta:
compgen -ac | grep searchstr
Debes hacer lo que quieras.
Siempre se puede 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.
Utilice "que searchstr". Devuelve la ruta del binario o la configuración de alias si es un alias
Editar: Si está buscando una lista de alias, puede usar:
alias -p | cut -d= -f1 | cut -d'' '' -f2
Agregue eso a la respuesta de búsqueda PATH que desee. Asume que estás usando bash ..
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 los alias y las funciones y variables que afectarían a los comandos que puede encontrar, piense en PATH o EDITOR, aunque EDITOR podría estar fuera de alcance. Puedes tener variables no exportadas que pueden afectar cosas.
- es específico de la shell o su entrada al núcleo, / proc / pid / enviorn y sus amigos no tienen suficiente información
Yo uso ZSH, así que aquí hay una respuesta zsh, hace las siguientes 3 cosas:
- vertederos camino
- vuelca los nombres de alias
- Vuelca las funciones que están en la env.
- los ordena
aquí está:
feed_me() {
(alias | cut -f1 -d= ; hash -f; hash -v | cut -f 1 -d= ; typeset +f) | sort
}
Si usas zsh esto debería hacerlo.
en debian: ls / bin / | grep "whatImSearchingFor"
tal vez sea un malentendido, pero ¿qué sucede si presiona Escape hasta que obtenga la opción Mostrar todas las X posibilidades?
compgen -c > list.txt && wc list.txt