Descubra si un comando se resuelve en un alias, un archivo de disco, una función de shell, un comando integrado o una palabra reservada. Utilizar type
para descubrir cómo se ejecutan sus comandos de Linux y comprender mejor su sistema.
Haz mi oferta
Cuando abrimos una ventana de terminal y empezamos a enviar comandos a nuestra computadora Linux, rara vez nos detenemos a pensar qué componentes de software dentro del sistema operativo están reaccionando a nuestros comandos y ejecutándolos por nosotros. Escribimos el comando, obtenemos el resultado y seguimos adelante con nuestra carga de trabajo.
Saber cómo se ejecutan los comandos nos da una mejor comprensión de la forma en que está construido nuestro sistema operativo Linux u otro tipo Unix. Echar un vistazo debajo del capó puede convertirnos en un conductor más informado.
Las instrucciones que emitimos a la línea de comando se encuentran en una de las siguientes categorías:
- Alias: Un comando definido por el usuario (o el sistema) que hace que se produzcan otras secuencias de comandos, de forma general largas o complejas.
- Archivo de disco: Un archivo ejecutable binario, como
/usr/bin/top
. - Función Shell: Una función establecida por el usuario (o el sistema) que se puede usar en la línea de comandos o se puede incluir en los scripts.
- Incorporado mando: Un comando que ejecuta el propio shell, como
pwd
. - Reservado palabra: Una palabra reservada por el shell, como
if
yelif
. Además se denominan palabras clave.
los type
mando nos dice que categoría cualquiera de los comandos de Linux pertenece. Aquí hay un tutorial rápido para comprender la salida del comando.
El tipo Command
Repasemos algunos ejemplos rápidos, para cada una de las categorías de comando.
type date
los date
El comando es un archivo de disco ejecutable.
type ls
los ls
comando es un alias, envolviendo el subyacente ls
comando para utilizar el --color=auto
opción por defecto.
type lowdown
los lowdown
El comando es una función establecida por el usuario que se configuró en el conmutador utilizado para investigar este post. Proporciona una instantánea rápida de algunos recursos del sistema. Es una combinación de whoami
, w
, free
y df
.
type pwd
los pwd
El comando es un comando integrado del shell Bash.
type elif
los elif
comando es una palabra reservada del shell Bash.
Usando múltiples comandos
Puedes dar type
múltiples comandos para identificar al mismo tiempo.
type date top ls
La opción -t
Ninguna de las alternativas que type
aceptará tener nombres. Para que podamos sacar nuestro libro de nombres y bautizarlos nosotros mismos. Si piensas en el -t
opción como «conciso», no se equivocará mucho. Reduce las respuestas de type
a respuestas de una sola palabra.
type -t date
type -t pwd
type -t lowdown
La opción -a
Llamemos a esta la opción «todos». Enumera todas las ubicaciones en las que se encuentra el comando. Tenga en cuenta que esta opción no funciona si además usas el -p
opción.
A modo de ejemplo, si tiene un alias con el mismo nombre que el comando subyacente, puede obtener información sobre el alias y el comando.
type -a ls
La opción -f
los -f
fuerzas de opción type
para no buscar funciones definidas por el usuario o el sistema. Piense en esta opción como «función de búsqueda desactivada». Tenga en cuenta que si el comando es Una función, type
informará que no se puede hallar el comando.
type -f top
type -f lowdown
La opción -P
Si utiliza el -P
opción, type
solo buscará los directorios en $ PATH. Entonces podemos llamar a esta opción «ruta». Tenga en cuenta que esta opción utiliza una «P» mayúscula.
type -P date chmod adduser
La opción -p
Si utiliza el -p
opción, type
solo responderá si el comando es un archivo de disco duro. Tenga en cuenta que esta opción utiliza una «p» minúscula.
type -p mount
type -p ls
type -p -a ls
type
no da ninguna respuesta para ls
debido a que ls
un alias y no un archivo de disco.
Pero si incluimos el -a
opción para que type
busca todas las instancias del ls
comando, enumera el archivo de disco subyacente que el ls
hace uso de alias.
Resumen
Eso fue agradable y simple, pero esclarecedor de todos modos.
Tendemos a pensar en cualquier cosa que escribimos en una ventana de terminal como un «comando», y lo dejamos así. Pero en realidad, los comandos se implementan de diversas formas en el sistema Linux. Y type
le posibilita averiguar cuál es.
setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);