Está en la página 1de 23

Linux bsico Versus Windows

Tabla de contenido
Linux. Sus porqus........................................................................................................................................... 3 Trabajando con Linux (y Windows) ................................................................................................................. 4 Interfaz de comandos y de ventanas .......................................................................................................... 4 Interpretando las rdenes del usuario ........................................................................................................ 5 La lnea de ordenes (PROMPT) .................................................................................................................... 6 Funcionamiento de la interfaz de comandos .............................................................................................. 7 Los comandos .................................................................................................................................................. 8 Ayuda al usuario .......................................................................................................................................... 8 Sintaxis de los comandos ............................................................................................................................ 9 Llamada a los comandos ........................................................................................................................... 10 Comandos en background ........................................................................................................................ 11 Metacaracteres del intrprete de Linux................................................................................................ 11 Comandos reconocidos por los intrpretes de comandos ....................................................................... 11 Bsqueda de comandos por el intrprete de comandos .......................................................................... 12 Variables de entorno ..................................................................................................................................... 12 Estructura de ficheros de los sistemas operativos Linux .............................................................................. 14 Nombres de archivos especiales ............................................................................................................... 15 Carpeta actual y carpeta padre ............................................................................................................. 15 Carpeta personal ................................................................................................................................... 15 Archivos ocultos .................................................................................................................................... 15 Directorios ms importantes de Linux y su contenido.............................................................................. 16 El Shell de Linux ............................................................................................................................................. 17 Archivos de Bash ....................................................................................................................................... 18 Re-utilizacin de comandos ...................................................................................................................... 18 Redireccionamiento de E/S ........................................................................................................................... 18 Tuberas o pipes ........................................................................................................................................ 19 Comandos ms utilizados en Linux ............................................................................................................... 20 Comandos de ayuda .................................................................................................................................. 20 Comandos para archivos y directorios ...................................................................................................... 20 Comandos para la gestin de usuarios ..................................................................................................... 21 Fernando Lpez Gracia 2013 Pgina 1

Linux bsico Versus Windows

Comandos para la gestin de procesos .................................................................................................... 21 Comandos para la gestin de discos y dispositivos .................................................................................. 21 Comandos para el acceso remoto ............................................................................................................. 22 Comandos para apagado y reinicio del sistema ........................................................................................ 22 Comandos para gestin del sistema ......................................................................................................... 22 Comandos de red ...................................................................................................................................... 23 Comandos para gestin de impresoras..................................................................................................... 23

Fernando Lpez Gracia 2013

Pgina 2

Linux bsico Versus Windows

Linux. Sus porqus.


Linux es un sistema operativo libre que consta de dos partes principales: 1. Ncleo (en ingles kernel): El ncleo de Linux se llama tambin Linux, y da nombre al todo el sistema operativo generalmente. El ncleo, son una parte muy pequea de programas, pero fundamentales para todo el resto de sistema operativo. Este ncleo fue desarrollado por Linus Torvalds en el 1992 2. Programas de aplicacin GNU: Son los programas adicionales al ncleo que proporcionan las utilidades al usuario. Son los programas de Comandos, como por ejemplo el Shell (interprete de comandos), los sistemas de archivos, y los editores (vi, nano, gedit), Son un conjunto muy numeroso de programas y utilidades desarrollados inicialmente por la Fundacion GNU, que son utilizados directamente a peticin de los usuarios. Hablando con propiedad deberamos decir que los sistemas se llaman GNU-Linux, aunque simplemente por comodidad se llama al conjunto simplemente como sistema operativo Linux. El sistema operativo GNU-Linux inicial, no es ms que una copia del sistema operativo UNIX de ATT que se utilizaba en los ordenadores de las universidades grandes entre 1970-1990. Los primeros fabricantes de ordenadores, proporcionaban unos sistemas operativos muy bsicos, que permitan muy pocas facilidades a los usuarios, debido a que la informtica en aquellas pocas era incipiente. Por eso habitualmente a las universidades, adems de proporcionar los ordenadores, se suministraban tambin los cdigos fuente de los programas del sistema operativo de forma gratuita. De esta forma las universidades podan ampliar la funcionalidad del propio ordenador y mejorarlo desde el punto de vista de uso para los usuarios. De esta forma, con el apoyo de las universidades, los sistemas operativos fueron mejorando con el paso del tiempo aadiendo muchas facilidades a los usuarios. Esto es as en casi todos los operativos y el especial con el ms utilizado en aquellas pocas, el UNIX. Hacia principios de los 80, ATT, la propietaria de UNIX, comenz a querer cobrar a las universidades el sistema operativo UNIX y a ocultar las fuentes desarrolladas durante varios aos antes gratuitamente. Por este motivo, y sobre estas fechas (1985), Richard Stallman crea la fundacin GNU rebelndose contra ATT por a cobrar a las propias universidades que haban ayudado a mejorar UNIX por usar este sistema operativo y por ocultar las fuentes de los programas. O sea, nace por el enfado de antiguos colaboradores, que ven que el trabajo que ellos mismos han desarrollado, ahora se les quiere cobrar. La fundacin GNU, nace con el objetivo de rescribir de nuevo de nuevo todos los programas de UNIX, y les pone una licencia que dice que cualquier programa derivado en los suyos tiene que publicar sus fuentes de forma gratuita, como ellos mismos hacen. Estos son los orgenes de GNU, pero cuentan con la dificultad del desconocimiento interno de la propia mquina donde van a correr los programas, por lo que la labor de realizar el ncleo es muy complicada.
Linus Torvalds como un experimento en su ordenador de casa, en un PC bsico del 1991 desarrolla en

lenguaje C, un ncleo para un sistema operativo para ordenadores con el procesador Intel 80386 y del estilo a Xenix (el UNIX que se poda ejecutar en aquel entonces en los PCs). Su trabajo es bastante bueno, y dedice publicarlo en una lista de correo que rpidamente tiene muchos colaboradores, consiguiendo nuevas mejoras; que al final se incluyen y se publican con licencia GPL, es decir publica sus fuentes y Fernando Lpez Gracia 2013 Pgina 3

Linux bsico Versus Windows

permite que sean incluidos otros programas GPL exclusivamente; una de las licencias creadas por la fundacin GNU. Con esto el proyecto GNU consigue incluir en 1992 un ncleo estable para ordenadores de sobremesa. Ncleo que por otra parte se estaba desarrollando desde 1982 en la fundacin GNU, pero que no estaba ni mucho menos finalizado. De aqu nace la primera versin de GNU-Linux en 1992. Como sistemas libres y de fuente abierta (en ingls open source), los cdigos fuentes de todos los programas de los sistemas operativos Linux son gratuitos y pueden ser descargados y compilados por cualquier persona incluidos los del ncleo (pero mejor se informtico). Cuando un informtico hace un programa nuevo para el ordenador, generalmente lo escribe en ficheros utilizando lenguajes de programacin de ordenador de nivel alto (muy similares al ingls, y a las consolas de comandos) estos lenguajes son los denominados lenguajes fuente. Los programas en estos lenguajes se denominan cdigo fuente; y lenguajes principales, aunque hay muchos son C, Java, Basic, (casi miles). Estos lenguajes no los entiende la CPU del ordenador hasta que no se han traducido a su propio idioma, el binario. Para traducir los ficheros en leguaje de alto nivel de los informticos al lenguaje binario de la CPU se utilizan los programas compiladores, que bsicamente realizan la funcin de traduccin de las rdenes que los informticos han diseado en los lenguajes de alto nivel (cdigos fuente), y escrito en ficheros de texto plano, a ficheros binarios que ya entiende la CPU. Como las fuentes de todos los programas de Linux son pblicas, ha dado lugar a que muchos informticos modificaran los programas iniciales y los recompilaran. Esto tiene la ventaja de que los programas del sistema operativo mejoran por la labor voluntaria de los informticos; sin embargo tiene el inconveniente que estas mejoras a veces son por simples gustos, y da lugar a diferencias significativas entre sistemas operativos Linux que todos tienen una misma base comn, el GNU-Linux original. Estas diferencias son las causantes de las diferentes distribuciones Linux. Por ello han surgido diferentes distribuciones de sistemas operativos Linux, como Debian, Red-Hat, Ubuntu, OpenSUSE, que son bsicamente Linux con ligeras modificaciones.

Trabajando con Linux (y Windows)


El sistema operativo Linux inicial se dise para trabajar en ordenadores servidores multiusuario. Por tanto, nada ms instalarlo y antes de poder comenzar a usarlo tenemos que poner nuestro nombre de usuario y contrasea para poder entrar. As tambin, en cuanto entramos, el S.O. nos reserva una parte de disco duro para nuestros propios programas, el directorio del usuario (directorio home).

Interfaz de comandos y de ventanas


Los S.O Linux (deban, redhat, opensuse,) se pueden manejar todos como inicialmente se hacan con la lnea de comandos originaria de UNIX, y tambin pueden contener un interfaz de ventanas (como Windows). En los ordenadores de servidores de empresas, generalmente el interfaz de ventanas no se instala, ya que ocupa espacio y hace ms lento el sistema operativo; adems las ventanas imponen limitaciones que la lnea de comandos no tiene.

Fernando Lpez Gracia 2013

Pgina 4

Linux bsico Versus Windows

Los entornos de ventanas de los S.O. Linux se llaman inicialmente XWindows, y se les conoce generalmente como las X. Su nombre viene del primer sistema de ventanas que se desarroll para Unix. Como fuente abierta que son, tambin han surgido diferentes sistemas de ventanas para la gestin de los Linux. Entre los ms conocidos estn Gnome utilizado por defecto en las distribuciones que tienen su origen en Devian, como el propio Devian y Ubuntu, y KDE utilizado por las distribuciones que parten de Red-Hat, como el propio Red-Hat, Fedora, Inicialmente, el sistema de ventanas X-Window utiliza la tecnologa cliente-servidor, por lo que podemos desde nuestro ordenador personal, arrancar un entorno X-Window de un servidor. De esta forma conseguimos trabajar en nuestro equipo como si estuviramos delante del servidor, con todos sus recursos a nuestra disposicin (los que tengamos los suficientes derechos). Esto origin a su vez el nacimiento de los sistemas operativos virtualizados como VMWare, Virtual-Box,; como una forma de trabajar con una mquina ms potente desde un ordenador personal. Se puede generalizar que en cualquier servidor optimizado para la empresa, generalmente el sistema de gestin de ventanas, es un lastre. Por lo que en Linux generalmente no se instala, y en los S.O. Windows, se quitan (desde el 2005 en los Windows se suelen dejar por que los ordenadores ya son muy potentes); quedndose generalmente el interfaz de lnea de comandos por su potencia y sencillez. La interfaz de comandos de todos los sistemas suele ser una ventana de 80 caracteres en columna por 24 filas, en las que slo se muestran caracteres de igual tamao con la fuente monoespaciada denominada Courier. Monoespaciada, significa que cada letra ocupa igual tamao en la pantalla, es decir, la i, ocupa el mismo espacio que la m. Estos interfaces de caracteres son los primeros de que dispusieron los primeros ordenadores y se mantienen en la actualidad en todos los sistemas operativos. Por tanto pulsar con el ratn dentro de la interfaz de comandos no tiene ningn efecto, salvo para poder copiar caracteres de dicha pantalla, y/o marcar zonas para copiar.

Interpretando las rdenes del usuario


La interfaz de comandos es tan potente, porque est diseada como un intrprete de comandos, es decir, tiene un lenguaje propio y de alto nivel, y se puede programar directamente en ella. Es un intrprete, porque en estos programas, el ordenador lee una lnea (o un comando), y lo ejecuta (no necesita compilarlo o traducirlo a lenguaje binario), ya que los comandos son sencillas rdenes directas de ejecucin para el S.O. Bsicamente cada orden consiste en cargar el programa respectivo (su propio archivo binario) y ejecutarlo. Cuando el programa ha finalizado, el S.O. nos pregunta la siguiente orden a Fernando Lpez Gracia 2013 Pgina 5

Linux bsico Versus Windows

ejecutar. De ah que no sea necesario compilar nada, puesto que el sistema operativo abre el fichero indicado (que ya est compilado), y lo manda a la CPU para que lo ejecute. Todas las interfaces de comandos son programables porque adems de los comandos interactivos (los que el usuario introduce uno a uno), tambin pueden leer un fichero de comandos, tambin conocido como fichero de scripts y/o fichero bach, en los que cada comando viene en una lnea diferente de un fichero de texto plano (el fichero de script). En estos casos, el S.O. abre dicho fichero, lee el primer comando y lo ejecuta, lee el segundo comando y lo ejecuta, y as hasta el final del fichero batch. En Windows estos ficheros de comando son los ficheros con extensin .bat (inicialmente las extensiones en Windows slo tena 3 caracteres como mximo); en Linux, como no existen en realidad las extensiones pueden ser cualquier fichero en principio. Adems, los terminales de los sistemas operativos, o intrpretes de comandos reconocen un reducido nmero de rdenes internas, que generalmente tienen que ver con borrar la pantalla, cambiar el directorio por defecto, ejecutar bucles y ejecutar los programas de formas diferentes Las interfaces de comandos reciben diferentes nombres que designan todos al mismo concepto. Los ms usados son: Interfaz de comandos, ventana de comandos, smbolo del sistema, ventana DOS, terminal de consola, terminal, consola y Shell (en ingls) Cuando tenemos instalado el sistema de ventanas en el sistema operativo, podemos acceder tambin a la interfaz de comandos. Para ello en Windows simplemente abrimos en accesorios la utilidad denominada Smbolo del sistema, en Linux abrimos una Terminal de consola. En ambos casos nos aparecer una pantalla de 80x24 caracteres, generalmente con fondo negro, en la que no se utiliza prcticamente el ratn en su interior (salvo para copiar y pegar caracteres). Sin embargo, si el S.O. no tiene instalado el interfaz de ventanas, simplemente para arrancar nos sale una pantalla a tamao completo que es un interfaz de comandos. En estos casos y antes de poder usar el ordenador, en esta pantalla incial de entrada, el S.O. nos pide nuestro nombre de usuario y contraseara para permitirnos el acceso al ordenador.

La lnea de ordenes (PROMPT)


En la interfaz de comandos siempre escribimos a partir de una lnea la siguiente orden a ejecutar. Los caracteres a la izquierda de esta lnea se denominan PROMPT, y nos sirven para indicarnos el directorio por defecto donde se encuentra la interfaz de comandos. En los sistemas Linux, el prompt contiene el usuario que est usando el ordenador y el directorio por defecto. En cualquier interfaz de comandos siempre estamos situados en un directorio, que adems se muestra en el PROMP:

Fernando Lpez Gracia 2013

Pgina 6

Linux bsico Versus Windows

Como se ve en la imagen anterior, en la interfaz de comandos de Windows, slo aparece el directorio por defecto y despus el carcter >, justo a continuacin debemos teclear los comandos que queremos que ejecute el S.O. Lo encerrado en el recuadro rojo es el PROMPT de Windows, o indicador en castellano.

En la interfaz de comandos de Linux, aparece en primer lugar el usuario que ha entrado en el ordenador, despus el carcter :, y despus el directorio donde se encuentra la interfaz de comandos. El texto encerrado en el recuadro rojo es el PROMPT de Linux.

Funcionamiento de la interfaz de comandos


Todas las interfaces de comandos funcionan igual. Cuando tecleamos un texto, se supone comando, por lo que inmediatamente al pulsar la tecla [ENTER], el S.O. busca lo que ejecutar. Primero en sus propios comandos internos (si lo encuentra all lo ejecuta), en caso contrario busca en el directorio por defecto de la interfaz de comandos (el indicado en el PROMPT) un archivo con el nombre del comando solicitado, y si lo encuentra lo ejecuta. Si no lo encuentra busca en todos los directorios de su PATH (se explica ms adelante) y si encuentra all el comando lo ejecuta. Si as no lo encuentra, muestra un mensaje de error generalmente Comando o nombre de archivo errneo, y se queda esperando la siguiente orden. Por tanto se deduce que en cualquier interfaz de comandos estamos siempre trabajando en un directorio por defecto que ser donde primero buscar el sistema operativo la orden que tecleemos tras pulsar la tecla [ENTER]. Generalmente se busca primero en el propio intrprete, el comando interno por rapidez aunque esto se suele obviar en las explicaciones. Si pulsamos simplemente [ENTER], sin teclear nada, no estamos indicando ninguna orden, con lo que el S.O., nos vuelve a sacar el PROMPT en la siguiente lnea y continua esperando nuevo comando. Por comando se entiende a la primera palabra que introducimos en la lnea de rdenes tras el prompt, este comando generalmente ser el nombre de un archivo ejecutable o simplemente comando. En los S.O. Windows los comandos son nombres de fichero que finalizan con las extensiones ejecutables conocidas en el ordenador. Estas extensiones ejecutables para Windows son generalmente .exe, .com y .bat, aunque pueden existir algunas ms. Por eso simplemente con escribir el nombre del comando sin extensin, automticamente los S.O. Windows buscan un archivo con el nombre indicado y extensin .com en el directorio por defecto. Si no lo encuentran realizan la bsqueda del archivo indicado ms la extensin .exe en el directorio por defecto, y despus con la extensin .bat. Si sigue sin encontrar el archivo realiza la misma bsqueda de estos ficheros en los directorios indicados en la variable de entorno Fernando Lpez Gracia 2013 Pgina 7

Linux bsico Versus Windows

PATH. Tras esto, si la encuentra, comprobar si el usuario que ha solicitado la orden tiene permiso para ejecutarla y en caso afirmativo la ejecuta directamente; si no tuviera permiso para ejecutarla, nos sacar el mensaje de acceso denegado, en caso de que no encuentre el fichero ejecutable nos indicara con el mensaje Programa o nombre de archivo errneo dicho suceso. Si escribimos el comando incluida la extensin, simplemente busca ese fichero directamente, es decir no prueba con el mismo nombre y las diferentes extensiones ejecutables conocidas por los S.O. Windows. En los sistemas Linux, como las extensiones de los archivos no tienen significado concreto, cuando escribimos una orden tenemos que escribir el nombre completo del archivo. El sistema de bsqueda es generalmente el mismo, es decir, primero busca el comando en los comandos internos, despus en el directorio por defecto y despus en cada uno de los directorios indicados en la variable de entorno PATH (las variables de entorno se explican ms adelante en este documento). Obviamente si encuentra el comando, se comprueba si el usuario actual tiene permisos suficientes para ejecutar el comando; si no los tiene nos avisar con un mensaje de acceso denegado, y si los tiene directamente proceder con la ejecucin. Si no encuentra el comando nos informa con un mensaje similar a archivo no encontrado.

Los comandos
Los comandos entendidos por la lnea de rdenes del terminal de consola, o del smbolo de sistema, son principalmente ficheros ejecutables, es decir programas que realizar operaciones para el usuario y/o para el propio sistema operativo. Son en su mayora ficheros con cdigo binario entendible por la CPU directamente; salvo los comandos internos al propio intrprete. Justo despus del comando y separado por un espacio, los comandos entiende los denominados argumentos, es decir diferentes modificadores de los propios comportamientos de los comandos. Son por tanto responsabilidad de cada comando entender sus propios argumentos. Cuando el intrprete ejecuta el comando, todos los argumentos de la lnea de rdenes escritos por el usuario son accesibles por el propio comando en ejecucin con el objeto de adecuar su propio comportamiento al solicitado por el usuario. Esto da lugar a incontables argumentos diferentes para cada uno de los comandos.

Ayuda al usuario
Con el objeto de racionalizar estos comandos, se han establecido en los sistemas operativos un argumento de ayuda al usuario. Dicho argumento en los sistemas operativos Windows es /?, y en los Linux es - -help. Al encontrar dicho argumento en la ejecucin, el propio comando tiene la misin de ofrecer al usuario en la consola un resumen y descripcin de su funcin y sus posibles argumentos. Esto es generalmente respetado por los comandos incluidos en el sistema operativo (los comandos propios del sistema que se incluyen en su instalacin). Naturalmente, a todos los sistemas operativos el usuario puede aadir incontables programas de aplicacin que no son otra cosa que nuevos comandos; y que por tanto, deberan respetar este comportamiento, pero que no siempre es as, ya que estn realizados por diferentes personas. Adems en los S.O. se incluyen directamente comandos de ayuda con el objeto de describir el comportamiento de cada comando del sistema. En los sistemas operativos Windows el comando de ayuda es naturalmente help. En los Linux existen principalmente 2: help y man. Naturalmente estos a su vez comandos (de ayuda) slo describen los comandos iniciales del propio sistema. Cualquier programa de aplicacin externo al sistema no viene descrito, pese a ser instalado inicialmente al instalar el propio sistema operativo. Fernando Lpez Gracia 2013 Pgina 8

Linux bsico Versus Windows

Sintaxis de los comandos


Cuando se explica un comando en cualquier libro se indica su sintaxis, es decir la forma de usarlo desde la lnea de rdenes. Ya se ha mencionado que el comando es la palabra ms a la izquierda, adems cada uno de los posibles argumentos se suele indicar en una nica palabra. Por tanto podemos resumir que los espacios en blanco separan los comandos y cada uno de los argumentos de los mismos, es decir, actan como separadores de la lnea de rdenes. Para aclarar la descripcin de los comandos se siguen unos convenios en la notacin o sintaxis: El nombre del comando que viene siempre a la izquierda se suele escribir en negrita. Los argumentos obligatorios que hemos de indicarle al comando para su correcto funcionamiento se escriben con letra normal. Si el argumento se puede tiene que personalizar se suele escribir en cursiva, indicando al usuario que debe sustituir el argumento en cursiva por el contenido concreto al que se refiere. Cuando un argumento no es obligatorio, es decir se puede omitir, se suele encerrar el mismo entre los corchetes ([]). Cuando hay que indicar uno slo de una lista de posibles argumentos se separa cada uno de los argumentos por el carcter |. Cuando un argumento se puede repetir muchas veces se le aade al final .

Con estas sencillas reglas se suelen explicar todos los argumentos de todos los comandos en todos los sistemas operativos y en casi todas las documentaciones. Adems hay que tener presente que cuando un argumento tiene que tener espacios en blanco tenemos que indicar al interprete que es literal, y para ello, tenemos que encerrarlo entre comillas dobles () en los S.O. Windows y entre comillas sencillas () en los sistemas operativos Linux. As por ejemplo, la sintaxis del comando cd de Windows es: CD [/D] [unidad:][ruta] Esto quiere decir que en Windows el comando CD admite un solo argumento que es opcional (el /D), y dos argumentos ms tambin opcionales, la unidad y la ruta. El primero de estos dos ltimos argumentos es la letra de la unidad de disco duro finalizada con el carcter : y el segundo que tambin se puede omitir es la ruta o directorio. De esta forma podemos deducir que los sistemas operativos Windows entendern como vlidos los usos de los siguientes comandos en la lnea de rdenes, entre muchos otros a modo de ejemplo: CD CD c: CD c:\ CD /d c:\windows

Para los sistemas operativos Windows es indiferente que el comando se escriba en maysculas y o en minsculas (CD del ejemplo anterior), pero el resto de argumentos es responsabilidad directa del propio comando, con lo que la utilizacin de maysculas y minsculas en los argumentos puede ser diferente, aunque en la mayora de los comandos de Windows no distinguen entre maysculas y minsculas, por lo que cambiar esto no tiene efectos. Esto es precisamente ocurre al contrario en los sistemas operativos Linux, es decir, los sistemas operativos Linux son sensibles a las maysculas, y pueden existir dos ficheros Fernando Lpez Gracia 2013 Pgina 9

Linux bsico Versus Windows

diferentes con el mismo nombre. Por tanto se deduce que en los Linux, en una misma carpeta pueden existir simultneamente los ficheros: hola y Hola, y en ambos casos son distintos. En los S.O. Windows, esto no es vlido, ya que de existir en un mismo directorio dos ficheros con los nombres anteriores, se considera el mismo y al escribir el segundo, en un mismo directorio nos indicar que el fichero ya existe y nos preguntar si lo queremos sobre escribir. Otro ejemplo de sintaxis un poco ms complicado puede ser la del comando alias de Debian-Linux: alias [-p] [name[=value+ + Esto quiere decir que el comando alias admite un argumento opcional -p, que hemos de escribir en minsculas justo a continuacin del propio comando u omitirlo, y despus podemos indicar un name (nombre de variable) y tambin un signo = y un valor para dicha variable. Esto permite a modo de ejemplo que sean comandos vlidos los siguientes: alias dir=ls la alias cls=clear alias p del=rm

Por el contrario no sern comandos vlidos: alias dir=ls p ya que el -p en caso de ser introducido debe ser precedido siempre del comando alias alias P cls=clear ya que el argumento -P no est reconocido (la p debera ser minscula)

En general, todas las rdenes de UNIX/Linux son programas que estn almacenados en el sistema de ficheros. Su sintaxis es similar a la del entorno comandos de Windows y es la siguiente: orden [-opciones] [argumentos]

Llamada a los comandos


La lnea de rdenes, en la ejecucin de los comandos de todos los intrpretes (de cualquier S.O.) admite que indiquemos previamente el camino de archivos donde localizar directamente el fichero con el cdigo ejecutable del comando solicitado por el usuario. As, si antes del nombre del comando indicamos su camino, estamos facilitando la localizacin del cdigo ejecutable del mismo y por lo tanto acelerando la ejecucin. De esta forma podemos indicar en un sistema Linux la orden: /etc/apache2/apache. En esta orden, el comando en realidad es el fichero apache que indicamos al interprete que se debe encontrar en el subdirectorio /etc/apache2. A esta forma de llamar a los comandos se la conoce como llamada indicando el camino absoluto, ya que en la orden estamos indicando el camino donde debe residir el fichero de forma absoluta, es decir partiendo del directorio raz del disco duro (que en Linux se designa simplemente como /). Tambin se permite indicar el camino relativo, es decir, partiendo del directorio por defecto del intrprete de comandos, donde se encuentra el comando en si. Por ejemplo, si nuestro intrprete de comandos est situado en el directorio /home/usuario, desde este directorio para ejecutar el comando Firefox, que conocemos que se encuentra en el subdirectorio firefox incluido dentro del directorio usuario, tendramos que indicar el comando: ./firefox/firefox (el . en Linux significa el directorio actual del intrprete de comandos.

Fernando Lpez Gracia 2013

Pgina 10

Linux bsico Versus Windows

Cuando se quiere que el comando sea de varias lneas, se separa cada lnea con el carcter barra invertida (\). Adems, cuando se quiere ejecutar varios comandos en la misma lnea, se los separa con punto y coma (;). Por ejemplo: make modules ; make modules_install En los comandos, tambin se puede utilizar los comodines, tambin llamados metacaracteres que se describen en el siguiente apartado. Nota.Los subdirectorios en Linux se separan como habr podido comprender con el carcter /, sin embargo en los S.O. Windows el carcter utilizado es \.

Comandos en background
Linux, como cualquier sistema Unix, puede ejecutar varias tareas al mismo tiempo. En sistemas monoprocesador, se asigna un determinado tiempo a cada tarea de manera que, al usuario, le parece que se ejecutan al mismo tiempo. Para ejecutar un programa en background, basta con poner el signo ampersand (&) al tmino de la lnea de comandos. Por ejemplo, si se quisiera copiar el directorio /usr/src/linux al directorio /tmp: cp -r /usr/src/linux /tmp &. Cuando ha terminado la ejecucin del programa, el sistema lo reporta mediante un mensaje similar a: *Done+ cp -r /usr/src/linux /tmp. Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se podra pasar a background de la siguiente manera: 1. Se suspende la ejecucin del programa, pulsando [Ctrl+Z]. 2. Se ejecutamos la siguiente orden: bg Metacaracteres del intrprete de Linux Tal y como pasaba en Windows, en Linux tenemos un conjunto de caracteres especiales muy tiles para realizar bsquedas u otras operaciones sobre ficheros y directorios. En Linux, dicho conjunto de caracteres se denomina metacaracteres y son los siguientes: Metacarcter ? * [] Accin Al igual que en Windows, sustituye un nico carcter. Sustituye a cualquier carcter o conjunto de caracteres. Cuando se utilizan como parte de nombres de archivo o directorio, representan un slo carcter de los incluidos entre los corchetes, que sustituirn al carcter en el nombre de archivo o directorio en la posicin en la que estn estos corchetes. Pueden incluir rangos separados por un guin, por ejemplo [1-3] sustituye a 1, 2 y/o a 3, *abcd+ sustituye a cualquiera de las letras indicadas. Permite la negacin o exclusin de caracteres.

Comandos reconocidos por los intrpretes de comandos


Como ya se ha comentado, los comandos reconocidos por los intrpretes de comandos pueden ser de 2 tipos:

Fernando Lpez Gracia 2013

Pgina 11

Linux bsico Versus Windows

1. Comandos internos. Estn incluidos en el propio intrprete, por lo que no es necesario que exista un fichero con su nombre que contenga el cdigo que debe ejecutar la CPU. Esos comandos, el cdigo lo tiene directamente el intrprete. Son comandos con una estrecha relacin con el intrprete y que se ejecutan de forma muy rpida puesto que no hay que hacer bsquedas para localizar el fichero ejecutable dentro de la estructura de archivos del propio ordenador. Todos los comandos internos estn accesibles (permitidos) para todos los usuarios del ordenador 2. Comandos externos. Son los comandos para los que debe existir un fichero ejecutable independiente dentro de la estructura de directorios del S.O. Estos comandos el intrprete primero debe localizar el archivo ejecutable, cargarlo en la memoria principal y decir a la CPU que lo ejecute. A dems estos comandos pueden ser protegidos por permisos para cada usuario y/o grupo de personas que utilicen el ordenador.

Bsqueda de comandos por el intrprete de comandos


Como ya se enunciado en el anterior apartado, el intrprete tiene que localizar los ficheros ejecutables (con el cdigo binario) de los comandos externos, antes de la propia ejecucin. Para ello y con el objeto de facilitar la labor del usuario, todos los intrpretes despliegan las siguientes tcnicas: 1. Que el usuario indique el camino (absoluto o relativo) justo antes de la propia orden, como ya se ha explicado en los apartados anteriores. 2. Que la el fichero se encuentre directamente en el directorio por defecto en el que est situado el intrprete. 3. Que el fichero se encuentre en carpetas comunes de ficheros del propio sistema operativo (carpetas que contienen la mayora de rdenes del propio sistema). Evidentemente si el S.O. tiene predefinida una carpeta donde buscar las ordenes en las que el usuario se olvide de indicar el camino (absoluto y/o relativo), slo tiene que buscar en un sitio comn para todos los comandos. Esto en los primeros S.O. era as, pero produca subcarpetas con miles de ficheros, que luego era muy difcil de gestionar debido a la cantidad tan elevada de ficheros. Para facilitar la gestin, el nmero de carpetas de bsqueda se puede aumentar, aunque siempre debe ser conocido y tambin debe permitirse que pueda cambiar en las situaciones que el usuario considere adecuadas. Para permitir estas situaciones los intrpretes de comandos disponen de una zona de variables de entorno, donde guardar variables que pueda utilizar tanto el usuario como el propio sistema operativo, y adems una de estas variables es la denominada PATH.

Variables de entorno
Es una zona de memoria gestionada por el intrprete de comandos donde se guardan datos tiles para el intrprete y para el usuario, con el objeto de facilitar la ejecucin de los comandos. El entorno del intrprete puede disponer de numerosas variables, algunas definidas por el propio S.O. y otras pueden ser aadidas por el usuario. Es una zona independiente de memoria para cada interprete de comandos, con lo que en un mismo sistema operativo, en diferentes ventanas de terminal, cada una tiene su propia zona de memoria para sus variables de entorno, lo que supone, que diferentes terminales de consola pueden tener diferentes variables con diferentes contenidos en un mismo momento. El sistema operativo, al abrir cada nueva consola, al principio siempre copia las mismas variables de entorno en cada ventana (puesto que copia slo las del propio S.O.), por lo que de partida al abrir 2 ventanas sin realizar ninguna accin, las variables Fernando Lpez Gracia 2013 Pgina 12

Linux bsico Versus Windows

de entorno, aunque independientes (en diferentes zonas de memoria), deben coincidir; sin embargo, despus pueden ir cambiando de forma independiente en cada ventana, en funcin de los comandos que se van ejecutando en cada una de ellas a peticin del usuario. Esto es vlido para todos los S.O. Una variable, no es ms que un enlace entre un nombre simblico (el nombre de la variable) y su dato (el contenido de la variable que es una cadena de caracteres), es decir, una variable de entorno es un nombre asociado a una cadena de caracteres, que se almacena en zona de variables del intrprete de comandos. Las variables pueden vez existir y desaparecer, es decir se pueden borrar completamente y/o tambin modificar su valor o sus datos a lo largo de la ejecucin del sistema y/o programa (de ah su nombre), es decir, una misma variable de nombre PATH puede en un momento dado contener el valor /etc/bin, y en otro momento cualquier otra cosa distinta. En los S.O. Windows el intrprete muestra al usuario todas las variables de entorno cuando el usuario introduce en la lnea de rdenes el comando interno set; en los sistemas operativos Linux el comando es env. El sistema operativo y en concreto el Shell (intrprete de comandos) define inicialmente algunas variables como se ha comentado antes; entre otras la variable PATH. Para conocer el contenido de una variable en Linux tenemos que ejecutar el comando: echo $variable; as para ver el contenido actual de la variable PATH, ejecutaramos en la lnea de rdenes el comando: echo $PATH (las comillas dobles son slo para facilitar la lectura, y no deben ser introducidas en la lnea de rdenes en este caso). En los S.O. Windows, para conocer el valor de una variable hay que ejecutar el comando set variable. Por ejemplo, ejecutando la orden echo $PATH en un terminal de Linux nos mostrar por ejemplo: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Esto quiere decir, que los comandos que no sean internos, y el usuario no indique en la lnea de rdenes el camino donde residen (absoluto o relativo) y tampoco los encuentre en el directorio por defecto del intrprete; sern buscados a continuacin en los directorios siguientes y por este orden: 1. 2. 3. 4. 5. 6. /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

El carcter : que aparece en el contenido de la variable PATH sirve como separacin de caminos de bsqueda en los S.O. Linux; sin embargo en los S.O. Windows el carcter de separacin de rutas de bsqueda de la variable de entorno PATH es el ;. Para aadir al entorno de ejecucin de un terminal una variable nueva deberemos ejecutar el comando: set nombredevariable=valor (recuerdo que las comillas en el texto son para facilitar la lectura) en los S.O. Windows, y la orden export nombredevariable=valor. As, para aadir al entorno una variable con el nombre de yo y el valor de fulanito en una consola de Linux, deberamos ejecutar la orden: export

Fernando Lpez Gracia 2013

Pgina 13

Linux bsico Versus Windows

yo=fulanito. Despus podemos pedir al intrprete que nos muestre el valor almacenado en la variable de entorno yo, con el comando echo $yo y nos debera mostrar fulanito. Como ha podido adivinar, disponer de variables de entorno propias del usuario nos puede venir muy bien a la hora de ejecutar diferentes comandos, ya que el intrprete, cuando detecta una cadena que comienza por $ y justo a continuacin y sin separacin una palabra cualquiera, automticamente va a buscar en su entorno la variable indicada por dicha palabra y si la encuentra definida, la sustituye automticamente por el valor definido. Supongamos que hemos definido la variable de entorno mihome, con el valor del camino completo de su directorio personal en Linux, con el comando export yo=/home/miusername, as simplemente para cambiar a su directorio personal en el intrprete de comandos con independencia de donde dicho intrprete este situado (directorio por defecto) podra utilizar en lugar del comando cd /home/miusername, el comando cd $yo. La siguiente tabla muestra la lista de variables ms usuales: Variable DISPLAY HOME HOSTNAME MAIL PATH PS1 SHELL TERM USER Descripcin Donde aparecen la salidas de X-Windows. Directorio personal. Nombre de la mquina. Archivo de correo. Lista de directorios donde buscar los programas. Prompt. Intrprete de comandos por defecto. Tipo de terminal. Nombre del usuario.

Estructura de ficheros de los sistemas operativos Linux


Linux al igual que UNIX est basado en ficheros (o archivos) principalmente. Esto quiere decir que casi todo en el sistema se maneja de la misma forma, como un fichero, o como una carpeta, que es un fichero que a su vez contiene a otros ficheros o carpetas. Windows, por ejemplo distingue de partida entre unidades de disco, ficheros, dispositivos, conexiones, ; sin embargo para UNIX y para Linux todo son ficheros. Esto se dise as con el objeto de simplificar al mximo el propio sistema operativo UNIX. Para ver los ficheros de una determinada carpeta en Linux se utiliza el comando ls (cuidado que en s la carpeta tambin es un fichero). Dicho comando tecleado en el terminal nos muestra los nombres de los archivos almacenados en la carpeta por defecto del intrprete de comandos. Adems, podemos indicar como argumento adicional el nombre de una carpeta. De esta forma la orden ls /etc, con independencia de donde estemos situados nos mostrar siempre el contenido de la carpeta etc almacenada dentro del directorio raz. La / significa el directorio raz del sistema operativo. Por tanto la orden anterior nos mostrar el contenido de la carpeta guardada dentro del directorio raz, que tiene el nombre etc. La orden ls tiene muchos argumentos disponibles (para verlos todos utilice el comando ls - - help, o tambin help ls, o man ls). Ver que uno de los argumentos ms tiles es ls la, que mostrar la lista de directorios de la carpeta actual en formato tabla, indicando los permisos de cada archivo, el propietario, el grupo, y el nombre de cada uno de los archivos.

Fernando Lpez Gracia 2013

Pgina 14

Linux bsico Versus Windows

Recuerde que el directorio raz en Linux es simplemente /, y que para mostrar los archivos de un directorio se utiliza la orden ls, esto en Windows es respectivamente C:\ y para mostrar los archivos la orden es dir En Linux y en Windows, existen algunos nombres de archivos especiales:

Nombres de archivos especiales


Carpeta actual y carpeta padre El archivo . se refiere siempre a la carpeta actual, o la carpeta por defecto donde se encuentra el terminal de comandos. El archivo .. es la carpeta padre de la carpeta actual. Ambas carpetas, la . y la .. tienen sus propios nombres. Esto es simplemente para facilitar la labor del usuario. Entindase este sistema de trabajo como muy similar al de las variables de entorno del intrprete de comandos, salvo que por comodidad (debido a la cantidad de veces que tendremos que usarlo), se ha simplificado el tratamiento de dichas variables, y adems automticamente el intrprete siempre sabe el nombre real de la carpeta . y de la carpeta ... Naturalmente en funcin del directorio donde estemos situados, estos nombres tienen en realidad diferentes valores (apuntan a diferentes carpetas). Esta informacin es automticamente actualizada por el intrprete de comandos. Cuidado que si estamos en la carpeta raz, la carpeta padre no existe, por lo que si en este caso utilizamos la notacin .., se provocar un error en el intrprete de comandos indicando que dicho directorio no existe. Estos directorios son muy tiles a la hora de hacer referencia a rutas relativas en el terminal. Carpeta personal Cuando entramos al sistema Linux, como sistema operativo multiusuario, generalmente disponemos de una carpeta personal donde guardar nuestros propios archivos (programas y datos). As si entramos al S.O. con el usuario con nombre pepe, nuestro directorio personal ser generalmente /home/pepe; salvo que el administrador del ordenador haya tomado medidas directas para modificar este comportamiento. Los intrpretes de comandos de Linux suelen tener un atajo para indicar el directorio personal. Este es el carcter ~, as si tecleamos en la consola cd ~, tendr el mismo efecto que si hubiramos tecleado cd /home/pepe. Por tanto, el carcter ~ ser extendido en la consola de comandos con el nombre de nuestra carpeta personal. Archivos ocultos Para Linux, cualquier archivo cuyo primer carcter de su nombre sea el . es un archivo oculto, con lo que por defecto ser ocultado como medida de proteccin del mismo. Esto es as para cualquier archivo del S.O. ya sea archivo y/o carpeta. Por ejemplo si dentro del directorio actual tenemos un archivo que se llame .nover, y ejecutamos la orden ls, este archivo ser omitido del listado. Si el archivo .nover fuera en realidad una carpeta, tampoco sera mostrada por la orden anterior. Naturalmente podremos trabajar con los archivos ocultos si indicamos directamente su nombre sin errores. Por ejemplo la orden cp .nover ver, nos crea una copia de dicho archivo con el nuevo nombre Fernando Lpez Gracia 2013 Pgina 15

Linux bsico Versus Windows

ver, si despus ejecutamos el comando ls, el fichero nover seguir sin mostrarse, pero si se mostrar el fichero ver, ya que no comienza por .. Adems el comando ls admite un argumento para que muestre cualquier archivo pese ha que comience por ., este argumento es -a, y la orden por ejemplo podra ser ls a. Los archivos ocultos tambin son ocultos inicialmente para los exploradores de archivos de las ventanas de los Linux. En estos casos tendremos que modificar la visualizacin del explorador, seleccionando el parmetro de que nos visualice los archivos ocultos adems de los no ocultos.

Directorios ms importantes de Linux y su contenido


Veamos algunos de los directorios ms importantes de Linux y lo que contienen: / es el directorio raz. De aqu cuelgan todos los directorios del sistema. Dentro del directorio raz encontramos varios subdirectorios, los ms importantes se muestran a continuacin. /bin contiene ficheros de comandos ejecutables utilizables por todos los usuarios. Aqu tenemos los programas que pueden lanzar todos los usuarios del sistema. /sbin es para ejecutables de uso exclusivo por el superusuario. Son los necesarios para arrancar y montar el directorio /usr. /home es un directorio donde se encuentran los directorios personales de los usuarios del sistema. Si hemos entrado al sistema con el nombre de usuario pepe, nuestro directorio personal debera ser /home/pepe inicialmente /usr contiene utilidades y programas generales de usuario: /usr/bin contiene programas de uso general. /usr/share contiene archivos compartibles, independientes de la arquitectura. /usr/share/doc contiene cierta documentacin del sistema. /usr/share/man contiene los manuales. /usr/etc contiene archivos de configuracin de uso global. /usr/include contiene las cabeceras de C y C++. /usr/lib contiene las bibliotecas de nuestros programas. /usr/sbin contiene los programas de administracin del sistema. /usr/src contiene los cdigos fuente de nuestros programas. /dev contiene archivos especiales de bloques y caracteres asociados a dispositivos hardware. Aqu encontramos todos los dispositivos fsicos del sistema (todo nuestro hardware). Ya hemos comentado que en Linux, todos son ficheros. Por lo que esta carpeta contienen todos los ficheros que simulan el comportamiento del hardware de nuestro ordenador. /lib contiene libreras y compiladores del sistema. Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin nicamente. /proc contiene los archivos que reciben o envan informacin al ncleo. No deberamos modificar el contenido de este directorio, ya que en realidad contiene todos los procesos que estn ejecutndose por el S.O. y la CPU. /etc contiene los ficheros de configuracin y utilidades para la administracin. /var contiene ficheros para el administrador. Este directorio contiene informacin variable, como registros, datos de los servidores, etc. /boot contiene los archivos de configuracin del arranque del sistema, como por ejemplo GRUB. Pgina 16

Fernando Lpez Gracia 2013

Linux bsico Versus Windows

/media contiene todas las unidades fsicas que tenemos montadas: Discos duros, unidades de DVD, pen drives, etc. /opt sirve para admitir ficheros nuevos creados tras la modificacin del sistema. Es un punto de montaje desde el que se instalan los paquetes de aplicacin adicionales. Podemos usarla para instalar aplicaciones que no vienen en los repositorios, por ejemplo, aquellas que compilamos a mano. /tmp es donde se almacenan los archivos temporales.

Cabe destacar que stas son las ubicaciones de los directorios en Fedora. Para otras distribuciones algunos directorios pueden tener un nombre diferente.

El Shell de Linux
Como venimos mencionando durante todo el documento, el intrprete de comandos de Linux, el terminal, la consola y/o el Shell sirve para introducir rdenes y ejecutar programas. Para acceder al Terminal desde el entorno de ventanas iremos al men de trabajo Aplicaciones y en la seccin Accesorios seleccionaremos Terminal. Esto har que se abra una ventana de comandos en modo carcter que generalmente ser de 80 x 24 caracteres (columnas x filas) con una fuente de texto equiespaciada (la i y la m ocupan el mismo espacio en la pantalla). Dentro de esta ventana el ratn tiene un significado casi nulo si olvidamos el de sealar el texto de la ventana para copiarlo al portapapeles. Las diferentes distribuciones de Linux incorporan gran variedad de terminales. Los tipos principales son los siguientes: Shell Bourne (sh). Creado por S. Bourne, es el ms utilizado en la actualidad. Su smbolo del sistema es $. Es el shell estndar y el que se monta en casi todos los sistemas UNIX/Linux. C-Shell (csh). Procedente del sistema BSD, proporciona funciones tales como control de trabajos, historial de rdenes, etc. Ofrece importantes caractersticas para los programadores que trabajan en lenguaje C. Su smbolo del sistema es %. Shell job (jsh). Incorpora algunas caractersticas de control al shell estndar del sistema. Shell Korn (ksh). Escrito por David Korn, ampla el shell del sistema aadiendo historial de rdenes, edicin en lnea de rdenes y caractersticas ampliadas de programacin. Bourne Again Shell (bash). Fue creado para usarlo en el proyecto GNU. BASH, por lo tanto, es un shell o intrprete de comandos GNU que incorpora la mayora de distribuciones de Linux. Es compatible con el shell sh. Adems, incorpora algunas caractersticas tiles de ksh y csh, y otras propias como la edicin de lnea de comandos, tamao ilimitado del historial de comandos, control de los trabajos y procesos, funciones y alias, clculos aritmticos con nmeros enteros, etc. Su smbolo del sistema es nombre_usuario@nombre_equipo.

El funcionamiento de los diferentes Shell es bsicamente el mismo si somos usuarios iniciales. En cualquier caso y en la mayora de las situaciones el Shell por defecto de la mayora de los Linux es el bash, y todo lo comentado en este documento se basa en dicho Shell.

Fernando Lpez Gracia 2013

Pgina 17

Linux bsico Versus Windows

Archivos de Bash
Cada shell posee ciertos archivos donde mantiene su configuracin. Estos tienen una jerarqua que va desde el archivo general de configuracin del sistema para todos los shells, pasando por el archivo propio del shell, hasta los archivos personales del usuario. A continuacin, se muestran los archivos utilizados para especificar opciones dentro de bash. Es importante aclarar que no es necesario que todos estos archivos existan dentro del directorio personal, el sistema posee su configuracin por defecto. Existen tres ficheros en el directorio de un usuario que tienen un significado especial para el shell Bash. Estos ficheros permiten al usuario configurar el entorno de su cuenta automticamente cuando entra en el sistema, cuando arranca un subshell o ejecutar comandos cuando sale del sistema. Los nombres de estos ficheros son .bash_profile, .bashrc y .bash_logout. Si ninguno de estos ficheros existe en el directorio del usuario, /etc/profile es utilizado por el sistema como fichero de configuracin de bash. .bash_profile es el el ms importante de los tres. Es ledo y los comandos incluidos en el, ejecutados, cada vez que el usuario entra en el sistema. Cualquier cambio hecho en este fichero no tendr efecto hasta que salgamos y entremos en el sistema de nuevo. Una alternativa para no tener que salir del sistema es ejecutar el comando source .bash_source. Bash permite dos sinnimos para este fichero, .bash_login (derivado del C shell) y .profile (derivado del Bourne y Korn shell). Si .bash_profile no existe, el sistema buscara primero .bash_login y luego .profile. Solamente uno de estos ficheros es ledo, en el caso que existan simultneamente.

Re-utilizacin de comandos
El shell almacena una historia de los comandos que el usuario ha escrito. Por medio de esta historia es posible volver a ejecutar una orden que ya se ha escrito anteriormente sin tener que escribirla de nuevo. La mayora de los shells, permiten viajar por la ``historia'' y editar los comandos usando nicamente las flechas del teclado.

Redireccionamiento de E/S
La filosofa de Linux/Unix es en extremo modular. Se prefieren las herramientas pequeas con tareas puntuales a las meta-herramientas que realizan todo. Para hacer el modelo completo es necesario proveer el medio para ensamblar estas herramientas en estructuras ms complejas. Esto se realiza por medio del redireccionamiento de las entradas y las salidas. Todos los programas tienen por defecto una entrada estndar (teclado) y dos salidas: La salida estndar (pantalla) y la salida de error (pantalla). En ellos se puede sustituir la entrada y salidas estndar por otro dispositivo utilizando los caracteres > y <, es decir, hacer que se lea un archivo que contenga las opciones a ejecutar y un archivo de salida, respectivamente. Por ejemplo: Entrada:

Fernando Lpez Gracia 2013

Pgina 18

Linux bsico Versus Windows

Se desea realizar una transferencia de archivos por ftp automtica. Para ello se va a utilizar el programa ncftp con unas determinadas instrucciones preestablecidas. Se crea un archivo entrada con dichas instrucciones: open linuxcol.uniandes.edu.co cd /pub/linux/utils get * quit y se ejecuta el programa: ncftp < entrada Salida: Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo: ls [iI]* > listado.txt Es importante resaltar que el carcter de redireccin de salida > destruir el archivo al cual apunta, si este existe, para ser reemplazado por uno nuevo con los resultados del proceso. Si se desea anexar la informacin al final de uno ya existente debe usarse doble carcter >>.

Tuberas o pipes
En la lnea de comandos la integracin entre diferentes programas se realiza por medio de la re-direccin de las entradas y salidas a travs de pipes o tuberas. Una tubera o pipe es una combinacin de varios comandos que se ejecutan simultneamente, donde el resultado del primero se enva a la entrada del siguiente. Esta tarea se realiza por medio del carcter barra vertical |. Por ejemplo si se quiere ver todos los archivos que hay en el directorio /usr/bin, se ejecuta lo siguiente: ls /usr/bin | more. De este modo, la salida del programa ls (listado de todos los archivos del directorio /usr/bin) ir al programa more (modo paginado, es decir, muestra una pantalla y espera a que pulsemos una tecla para mostrar la siguiente). Dentro de esta estructura se han construido una serie de programas conocidos como filtros los cuales realizan procesos bsicos sobre textos. Se da el nombre de filtros a un grupo de comandos que leen alguna entrada, realizan una transformacin y escriben una salida. Filtros sort cut od paste tac tr uniq wc Funcin Ordena las lnea de un texto Corta secciones de una lnea Convierte archivos de forma octal u otras Une lneas de diferentes archivos Concatena e imprime archivos invertidos (del final al principio) Traduce o borra caracteres Elimina lneas repetidas Cuenta bytes, palabras y lneas

Algunos filtros han llegado a ser tan complejos que son en s, un lenguaje de procesamiento de texto, de bsqueda de patrones, de construccin de scripts, y muchas otras posibilidades. Estas herramientas pasan

Fernando Lpez Gracia 2013

Pgina 19

Linux bsico Versus Windows

a ser parte de la siguiente seccin. Entre ellos podemos mencionar herramientas tradicionales en Linux/Unix como awk y sed y otras ms modernas como Perl.

Comandos ms utilizados en Linux


Comandos de ayuda
Comando man info --help Descripcin Muestra el manual del comando que le indiquemos Provee informacin del comando indicado Da una ayuda breve de los comandos

Comandos para archivos y directorios


Comando ls sort cd pwd tree mkdir rmdir rm -r cp rm mv cat more less split find locate updatedb whereis file whatis wc grep head tail tailf tr sed join paste uniq cut ln diff fuser tar gzip gunzip compress uncompress Descripcin Lista los archivos y directorios Ordena alfabticamente una lista de archivos Cambia de directorio Muestra la ruta al directorio actual Muestra la estructura de directorios y archivos en forma grfica Crea un directorio Borra directorios(los directorios deben estar vacos). Borra directorios (los directorios pueden no estar vacos) Copia archivos Borra archivos Mueve o renombra archivos y directorios Muestra el contenido de uno o varios archivos Ve el contenido de los archivos pgina a pgina Ve el contenido de los archivos Dividir archivos Busca archivos Localiza archivos segn una lista generada Actualiza la lista de los archivos existentes Muestra la ubicacin de un archivo Muestra el tipo de archivo Muestra descripcin del archivo Muestra el total de lneas, palabras o caracteres en un archivo Busca un texto en un archivos Muestra el inicio de un archivo Muestra el final de un archivo Muestra el final de un archivo y lo que se aada en el instante (logs) Reemplaza caracteres en un fichero de texto Cambia una cadena de caracteres por otra Cruza la informacin de dos archivos y muestra las partes que se repiten Toma la primera lnea de cada archivo y las combina para formar una lnea de salida Elimina lneas repetidas adyacentes del archivo entrada cuando copia al archivo salida Sirve para seleccionar columnas de una tabla o campos de cada lnea de archivo Crea enlaces a archivos o carpetas Muestra las diferencias entre dos archivos Muestra que usuario tiene en uso o bloqueado un archivo o recurso Empaqueta archivos Comprime archivos en formato .gz Descomprime archivos en formato .gz Comprime archivos Z Descomprime archivos Z

Fernando Lpez Gracia 2013

Pgina 20

Linux bsico Versus Windows

chmod chown chgrp vi nano pico

Cambia permisos de archivos y directorios Cambia de propietario/usuario Cambia de grupo Abre el editor de texto vi Abre el editor de texto nano Edita un fichero de texto

Comandos para la gestin de usuarios


Comando adduser useradd userdel passwd su whoami logname id finger chfn who w last mail pine write mesg wall talk banner set addgroup groupadd chown Descripcin Agrega un nuevo usuario Agrega un nuevo usuario Borra un usuario Permite cambiar la contrasea Cambia de usuario Muestra el nombre de usuario actual Muestra el nombre de usuario Muestra datos de identificacin del usuario Da informacin de usuario Cambia la informacin propocionada por el comando finger Muestra los usuarios actuales del sistema Muestra detalles de los usuarios actuales aplicado al comando who Informacin de los ltimos usuarios que han usado el sistema Abre la aplicacin de correo electrnico Lector de correo en modo texto Manda un mensaje a la pantalla de un usuario Activa o desactiva la funcin de recepcin de mensajes Enva mensaje a todos los usuarios Establecer una conversacin/dilogo con otro usuario Saca un dilogo/letrero en la pantalla Proporciona informacin sobre el entorno del usuario Agrega un nuevo grupo Agrega un nuevo grupo Cambia el propietario de un fichero

Comandos para la gestin de procesos


Comando top ps ps aux kill killall time fg bg & nice Descripcin Muestra los procesos que se estn ejecutando y permite matarlos Muestra la lista de procesos del usuario Muestra la lista de procesos de la mquina Enva un evento concreto a un proceso Mata un proceso por su nombre Mide el tiempo que tarda un proceso en ejecutarse Trae a primer plano un proceso parado o en segundo plano Pone un proceso en segundo plano Colocado al final de la lnea de un comando,lo ejecuta en segundo plano Ajusta la prioridad de un proceso de -20 a 19

Comandos para la gestin de discos y dispositivos


Comando mount umount df du mkfs fsck Descripcin Monta un disco/dispositivo Desmonta un disco/dispositivo Muestra el espacio libre de los discos/dispositivos Muestra el espacio usado por el disco/dispositivo o un directorio Formatea un disco/dispositivo Estado del disco/dispositivo

Fernando Lpez Gracia 2013

Pgina 21

Linux bsico Versus Windows

fdisk

Abre la aplicacin para la gestin de particiones

Comandos para el acceso remoto


Comando rlogin rsh ftp Descripcin Se conecta a otra mquina de forma remota (remote login) Se conecta a otra mquina de forma remota (remote shell) Se conecta a otra mquina por el protocolo FTP

Comandos para apagado y reinicio del sistema


Comando reboot halt shutdown init 0 init 6 Descripcin Reinicia la mquina Apaga el sistema Apaga el sistema Apaga la mquina Reinicia la mquina

Comandos para gestin del sistema


Comando uptime exit logout nohup dmesg history uname tee host hostname umask chroot chsh free date cal clear at env export modprobe startx xev lspci lsmod echo alias unalias bc mc xkill rpm dpkg kernelcfg insmod Descripcin Muestra el tiempo transcurrido de encendido de la mquina Cerrar sesin actual Salir del sistema Proporciona inmunidad frente a rupturas de comunicacin y abandonos en ejecucin de comandos Muestra mensajes del arranque de la mquina Muestra todos los comandos escritos por el usuario Proporciona informacin del sistema operativo Copia la entrada estndar a la salida estndar y a un archivo Muestra la direccin IP del servidor en una red local. Ej: host malpelo.univalle.edu.co => 192.168.31.5 Muestra el nombre del servidor Muestra y permite cambiar la mscara de usuario Cambia la raz para que root ejecute algo de forma particular Cambia el login shell Muestra el estado de la memoria Muestra la fecha y hora actual Muestra el calendario Borra las lneas de texto escritas en la pantalla/terminal Ejecuta un comando con un retardo de tiempo especificado Muestra las variables de entorno Permite el uso de variables por programas en todos los caminos del usuario Carga un mdulo Arranca/inicia el servidor X Muestra los eventos de las teclas y el ratn Muestra los perifricos conectados al puente PCI Muestra los mdulos cargados en el sistema Escribe un mensaje en la salida estndar Crea un alias Borra un alias Muestra la calculadora Ejecuta Midnight Commander Mata una ventana grfica Instala los paquetes RPM de RedHat Instala los paquetes DEB de Debian Manejo de los mdulos cargados en el kernel Inserta mdulos en el kernel

Fernando Lpez Gracia 2013

Pgina 22

Linux bsico Versus Windows

rmmod updatedb sh setxkbmap

Elimina mdulos del kernel Actualiza la base de datos interna de archivos Cambia al bash/shell Realiza la funcin de la tecla AltGr (en modo X)

Comandos de red
Comando netstat ifconfig iwconfig nmap ping nslookup telnet netconf ntop route -n installpkg Descripcin Muestra estado de la red Muestra la configuracin del dispositivo de red Muestra la configuracin del dispositivo de red inalmbrico Escanea la red y muestra los puertos que se encuentran disponibles. Ej: nmap malpelo.univalle.edu.co/~ahbarome/ => 80/tcp open http Indica si hay respuesta por parte del servidor Muestra la IP del servidor DNS conectado(Servidor predeterminado: UnKnown Address: 192.168.1.1) Conexin a un equipo/mquina de forma remota Configuracin de la red Muestra los procesos de la red Muestra la tabla de rutas de la conexin de red Instalar en slackware

Comandos para gestin de impresoras


Comando lpq lpc lprm printtool pr jobs Descripcin Muestra las colas de impresin Estado de las impresoras Elimina un trabajo de la cola de impresin Configuracin de la impresora Imprime un archivo Muestra los trabajos que estn en una cola de impresin

Fernando Lpez Gracia 2013

Pgina 23