{"id":327,"date":"2023-09-01T09:29:41","date_gmt":"2023-09-01T07:29:41","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=327"},"modified":"2025-03-07T17:55:28","modified_gmt":"2025-03-07T15:55:28","slug":"1-14-definicion-de-nuevos-comandos","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-14-definicion-de-nuevos-comandos\/","title":{"rendered":"1.14. Definici\u00f3n de nuevos comandos"},"content":{"rendered":"<p>Durante este m\u00f3dulo, hemos observado que los comandos del terminal cuentan con un amplio n\u00famero de opciones que permiten m\u00faltiples combinaciones y es comprensible que cada usuario habitualmente utilice solo un peque\u00f1o conjunto de estas posibilidades de configuraci\u00f3n. Dado esta particularidad, el int\u00e9rprete de comandos permite definir nuevos comandos basados en determinadas combinaciones de comandos y opciones que el usuario requiere con frecuencia. El comando <code>alias<\/code> implementa este mecanismo, asociando un nuevo nombre de comando a una secuencia de comandos y opciones prefijadas.<\/p>\n<p>Para crear un alias, usa el comando <code>alias<\/code> con el nombre apropiado. Sin argumentos, este listar\u00e1 todos los alias definidos hasta ese momento. Mientras est\u00e1s en la <em>shell<\/em>, puedes comprobar qu\u00e9 alias est\u00e1n establecidos escribiendo el comando <code>alias<\/code>. Para crear un alias, da un nombre, seguido de = y luego el comando a ser alias entre comillas simples. No debe haber espacios alrededor del operador <code>=<\/code>. Usa el comando <code>type<\/code> nombre para comprobar si ese nombre ya est\u00e1 siendo utilizado por otro comando. A continuaci\u00f3n, algunos ejemplos:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ type p<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">bash: type: p: not found<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\"> $ alias p='pwd'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ p<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">\/home\/student\/HIB<\/pre>\n<p>En este ejemplo se ha habilitado la letra <em>p<\/em> al comando <code>pwd<\/code>.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ alias pl='pwd ; ls \u2013CF'<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ alias rm='rm -i'<\/pre>\n<p>En el primer ejemplo, las letras <code>pl<\/code> se asignan para ejecutar el comando <code>pwd<\/code> y, a continuaci\u00f3n, se ejecuta la orden <code>ls -CF<\/code> con lo que primero se imprime el directorio de trabajo actual y lista su contenido en forma de columna. El segundo ejemplo ejecuta el comando <code>rm<\/code> con la opci\u00f3n <code>-i<\/code> cada vez que escribes <code>rm<\/code> (este es un alias que a menudo se establece autom\u00e1ticamente para el usuario <em>root)<\/em>. En lugar de simplemente eliminar archivos, se te pedir\u00e1 confirmaci\u00f3n para cada eliminaci\u00f3n individual de archivo. Esto evita que eliminen autom\u00e1ticamente todos los archivos de un directorio al escribir accidentalmente algo c\u00f3mo <code>rm *<\/code>.<\/p>\n<p>Si quieres eliminar un alias, escribe <code>unalias<\/code>, letras que definen el alias (recuerda que, si el alias est\u00e1 configurado en un archivo de configuraci\u00f3n, se establecer\u00e1 de nuevo cuando abras otra <em>shell<\/em>).<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ unalias p pl<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ . .bashrc<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ type p pl<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">bash: type: p: not found\r\n\r\nbash: type: pl: not found<\/pre>\n<p>Si deseas guardar una lista personal de <code>alias<\/code> de forma permanente, puedes escribirlos en el archivo $HOME\/.bash_aliases, que es uno de los archivos de configuraci\u00f3n del entorno que los usuarios avanzados de Gnu\/Linux guardan en su directorio $HOME (\/home\/student).<\/p>\n<p>Cada vez que inicies tu m\u00e1quina o establezcas una sesi\u00f3n remota, el archivo se leer\u00e1 en memoria, lo que permitir\u00e1 que los <code>alias<\/code> se integren en el entorno.<\/p>\n<p>El archivo $HOME\/.bash_aliases es utilizado por los archivos de configuraci\u00f3n $HOME\/.bashrc en la m\u00e1quina local, y $HOME\/.bash_profile cuando se establece una sesi\u00f3n remota a trav\u00e9s de SSH. En la secci\u00f3n de administraci\u00f3n b\u00e1sica de un sistema Gnu\/Linux, profundizaremos en el uso de estos archivos (apartado 1.16).<\/p>\n<p>Como ejercicio, te sugiero que busques y leas estos archivos. Te comunico que necesitas utilizar el comando <em>ls -a<\/em> para verlos, ya que el nombre de archivo est\u00e1 precedido por un punto para ocultarlos de una llamada de <em>ls<\/em> est\u00e1ndar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Durante este m\u00f3dulo, hemos observado que los comandos del terminal cuentan con un amplio n\u00famero de opciones que permiten m\u00faltiples combinaciones y es comprensible que cada usuario habitualmente utilice solo un peque\u00f1o conjunto de estas posibilidades de configuraci\u00f3n. Dado esta particularidad, el int\u00e9rprete de comandos permite definir nuevos comandos basados en determinadas combinaciones de comandos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/327"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=327"}],"version-history":[{"count":8,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/327\/revisions"}],"predecessor-version":[{"id":1314,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/327\/revisions\/1314"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}