El libre pensamiento para un internet libre
No estas registrado.
Los comandos de nuestros sistemas Operativo GNU-Linux son la panacea.
Incluso Bill Gate lo sabe (Microsoft to show Bash on Linux running on Windows 10)
Uno de ellos es type
Es un comando "incorporado" (built-in) en nuestra consola.
Un comando fundamental (como los son cd o echo) que tenemos en todos los sistemas basados en UNIX.
Dicho de otro modo : Encontraremos/podremos usar type en la consola de cualquiera distribuciones GNU-Linux y incluso en una terminal de un sistema operativo macintosh.
Su uso es muy simple y tiene pocas opciones :
NAME
type - Display information about command type.SYNOPSIS
type [-afptP] name [name ...]
/usr/bin/bully
DESCRIPTION
Display information about command type.
For each NAME, indicate how it would be interpreted if used as a
command name.
Options:
-a display all locations containing an executable named NAME;
includes aliases, builtins, and functions, if and only if
the `-p' option is not also used
-f suppress shell function lookup
-P force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed
-p returns either the name of the disk file that would be executed,
or nothing if `type -t NAME' would not return `file'.
-t output a single word which is one of `alias', `keyword',
`function', `builtin', `file' or `', if NAME is an alias, shell
reserved word, shell function, shell builtin, disk file, or not
found, respectively
Arguments:
NAME Command name to be interpreted.
Exit Status:
Returns success if all of the NAMEs are found; fails if any are not found.
type - Man page
Por si no lo habéis entendido leyendo el descriptivo en inglés, type permite saber si tenemos un comando instalado o no, localizarlo en el sistema de fichero y saber de que tipo es.
type NAME
¿Quieres saber si un sistema esta listo para hacer un ataque WPS?
Lo sabes en un instante haciendo en consola
type aircrack-ng reaver bully
Si la orden esta presente en el sistema obtienes confirmación de ello en consola así que su ruta exacta.
Si no se encuentra en el sistema obtienes un mensaje de error (no se encontró)
No hay forma más rápida y versátil para obtener esta información y es muy útil si desarrollas un script y quieres que se adapte al sistema anfitrión.
type -t NAME
Con este argumento sabremos de que tipo de comando se trata : si es un comando incorporado a nuestra consola (built-in), un comando externo (file), un comando "personalizado" (alias)...
Como dije antes type es un comando "interno-incorporado" que podremos usar incluso en sistema macintosh.
Así que sale como buildin.
Mientras que pyrit (crack WPA con recursos GPU) es un comando externo ("file") y es obvio que en este caso no lo encontraremos en todos los sistemas...
Notar que es un argumento algo "excluyente" : si usamos -t no podemos usar -a o -p
type -a NAME
El argumento a es generalmente para significar "all" ("todo").
Es el caso con type que indica así todas los lugares que contienen un ejecutable con el nombre dado.
Fijaros en la diferencia :
type -p name
-p significa aquí path y el comando devuelve así solo y unicamente la ruta.
Es para "depurar la salida".
Más limpio si queremos usar type en un script
Además si el comando no existe no devuelve nada (no hay menaje de error)
Podemos combinar -a y -p (y quitamos así siempre los mensajes "command is...")
type -P NAME
Esta opción sirve para "forzar" la búsqueda. Para entender como funciona nada mejor que un ejemplo simple...
Supongo que conocéis a ls
Es un comando muy útil que sirve a mostrar en consola todos los ficheros que contiene el directorio dónde estamos situados.
Además su salida esta en colores para distinguir fácilmente de que tipo de fichero se trata.
La cosa es que ls es un "alias" (para poder "colorizar" la salida)
Miremos que ocurre con un "keyword", es decir las expresiones que nos permiten hacer scripts en bash (if, for, while, do, esac)
Sale como "keyword/palabra clave del shell" y no obtenemos ruta aunque empleamos "force" (-P)
Para concluir el tema miremos que pasa si defino una función en consola.
Hago una llamada "mundo" que escribe "mundo" en consola...
Nos sale cómo función (al fin y al cabo una función es un comando de entrono limitado a la shell en uso) y si le pediría una ruta no me devolvería nada.
Normal : no hay fichero llamado mundo en mi sistema, la función solo existe "en esta shell".
Notar que se nos muestra la función con type mundo (o type -a mundo)
Sobre la ultima opción de la cúal no hemos hablado aún, la opción -f
Como veis en la captura anterior, si la utilizo para obtener información sobre mi función "mundo" obtengo un error.
Es porque -f es para omitir los comandos disponibles solo en la shell abierta.
El comando type ya no tiene secretos para ti...
Fuentes
type - Man page
Type command - Linux Shell Scripting Tutorial (LSST) v2.0
Desconectado
Tema | Respuestas | Vistas | Ultimo mensaje |
---|---|---|---|
|
26 | 7599 | 15-03-2023 16:57:32 por kcdtv |
Pegado: |
34 | 3711 | 12-03-2023 18:24:22 por Guybrush92 |
Pegado: |
436 | 63222 | 07-03-2023 12:35:27 por kcdtv |
0 | 389 | 23-02-2023 17:09:39 por kcdtv | |
114 | 258210 | 19-02-2023 17:36:14 por chuchof |
Ultimo usuario registrado: trdmexico
Usuarios registrados conectados: 0
Invitados conectados: 17
Número total de usuarios registrados: 2,431
Número total de temas: 1,632
Número total de mensajes: 15,528
Atom tema feed - Impulsado por FluxBB