{"id":4,"date":"2013-02-07T16:15:34","date_gmt":"2013-02-07T16:15:34","guid":{"rendered":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/?p=4"},"modified":"2013-02-21T11:54:14","modified_gmt":"2013-02-21T11:54:14","slug":"interprete-comandos","status":"publish","type":"post","link":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/interprete-comandos\/","title":{"rendered":"El int\u00e9rprete de comandos"},"content":{"rendered":"<p><\/p>\n<h3>El int\u00e9rprete de comandos es programable<\/h3>\n<p>Una caracter\u00edstica esencial del int\u00e9rprete de comandos es que no s\u00f3lo lee e interpreta las \u00f3rdenes del usuario, sino que tambi\u00e9n es un lenguaje de programaci\u00f3n bastante sencillo de utilizar. Los programas pueden ser tan sencillos c\u00f3mo un s\u00f3lo comando con algunas opciones o contener conjuntos de comandos y sentencias de programaci\u00f3n del int\u00e9rprete.<\/p>\n<h3>Los programas est\u00e1n dise\u00f1ados para colaborar<\/h3>\n<p>Una idea b\u00e1sica que distingue Linux de otros sistemas operativos es que los programas son herramientas, y como tales, deben tener una funci\u00f3n espec\u00edfica pero han de poder usarse para diferentes prop\u00f3sitos. Tres caracter\u00edsticas son necesarias para conseguir esto:<\/p>\n<ul>\n<li>Los resultados de un programa deben poder usarse como datos de entrada para otros.<\/li>\n<li>Los programas deben estar preparados para trabajar en modo no interactivo, de forma que todas las opciones y datos que necesitan les puedan venir a trav\u00e9s de un fichero.<\/li>\n<li>Por defecto, los programas deben leer la entrada est\u00e1ndar (el teclado) y mostrar los resultados en la salida est\u00e1ndar (la pantalla).<\/li>\n<\/ul>\n<p>Cuando los programas pueden usarse de esta forma, es posible indicarle al int\u00e9rprete que deseamos encadenarlos secuencialmente de forma que la salida de cada uno de ellos constituye la entrada para el siguiente.<\/p>\n<h3>Complejidad a la carta<\/h3>\n<p>La filosof\u00eda de Linux es proporcionar una gran cantidad de utilidades que realizan tareas simples de forma que el usuario b\u00e1sico pueda desenvolverse con comodidad, Pero al mismo tiempo, a trav\u00e9s de la combinaci\u00f3n de comandos y las capacidades de programaci\u00f3n del int\u00e9rprete, proporciona la posibilidad de crear nuevos comandos m\u00e1s complejos para los usuarios que as\u00ed lo requieran.<\/p>\n<h3>El modo consola<\/h3>\n<p>Originalmente la interacci\u00f3n con el int\u00e9rprete de comandos se realizaba a trav\u00e9s de lo que se denominaban consolas (conjunto de teclado y pantalla) introduciendo \u00f3rdenes en un entorno sin visualizaci\u00f3n gr\u00e1fica, \u00fanicamente de texto. El int\u00e9rprete muestra un indicador (<strong><em>prompt<\/em><\/strong>) en la <strong>l\u00ednea de comandos<\/strong> para mostrar al usuario que puede introducir una orden. El formato del prompt es muy flexible, pudiendo mostrar informaci\u00f3n como el nombre del usuario conectado o el directorio actual, por ejemplo.<\/p>\n<p>Actualmente, entornos como XWindow proporcionan interfaces gr\u00e1ficas que evitan muchas de las complejidades de la interacci\u00f3n a trav\u00e9s de la consola. Sin embargo, existen todav\u00eda comandos (sobre todo de administraci\u00f3n del sistema) que no est\u00e1n completamente soportados por aplicaciones gr\u00e1ficas y se hace necesario la interacci\u00f3n a trav\u00e9s de lo que denominaremos <strong>modo consola<\/strong> o texto en contraste con el <strong>modo gr\u00e1fico<\/strong>.<\/p>\n<p>Sin embargo, en el mantenimiento remoto de servidores Linux, suele ser habitual usar el modo consola. Es conveniente, pues, estar familiarizado con su uso si vamos a tener que trabajar con servidores remotos.<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #888888;\">Cuando tengamos que introducir \u00f3rdenes, debemos tener en cuenta que los int\u00e9rpretes de comandos de Linux distinguen may\u00fasculas y min\u00fasculas.<\/span><\/p>\n<h3>Variables de entorno<\/h3>\n<p>Muchas utilidades de Linux, incluyendo el int\u00e9rprete de comandos, necesitan informaci\u00f3n sobre el usuario y sus preferencias. Este tipo de informaci\u00f3n se almacena en las variables de entorno, que son gestionadas por el int\u00e9rprete de forma que son accesibles a los programas que las necesitan.<\/p>\n<p>Aunque es posible definirlas, existe una serie de variables de entorno predefinidas como por ejemplo las siguientes:<\/p>\n<ul>\n<li><em>PATH<\/em>: Contiene la lista de directorios donde el int\u00e9rprete buscar\u00e1 los comandos que el usuario pida ejecutar.<\/li>\n<li><em>HOME<\/em>: Contiene la ruta absoluta hasta el directorio personal del usuario.<\/li>\n<li><em>PS1<\/em>: Contiene la definici\u00f3n del prompt principal que muestra el int\u00e9rprete en modo texto.<\/li>\n<\/ul>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>El int\u00e9rprete de comandos es programable Una caracter\u00edstica esencial del int\u00e9rprete de comandos es que no s\u00f3lo lee e interpreta las \u00f3rdenes del usuario, sino que tambi\u00e9n es un lenguaje de programaci\u00f3n bastante sencillo de utilizar. Los programas pueden ser tan sencillos c\u00f3mo un s\u00f3lo comando con algunas opciones o contener conjuntos de comandos y &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/multimedia.uoc.edu\/blogs\/linux\/interprete-comandos\/\" class=\"more-link\">Seguir leyendo<span class=\"screen-reader-text\"> \u00abEl int\u00e9rprete de comandos\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4","post","type-post","status-publish","format-standard","hentry","category-gnulinux","entry"],"_links":{"self":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":7,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":58,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/posts\/4\/revisions\/58"}],"wp:attachment":[{"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/multimedia.uoc.edu\/blogs\/linux\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}