<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2363094673869321025</id><updated>2011-04-21T11:32:46.554-07:00</updated><category term='GNU/Linux'/><title type='text'>Manuales Linuxlandia</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-3924948907343686269</id><published>2007-11-12T08:40:00.000-08:00</published><updated>2007-11-12T09:14:43.334-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 6: Entrada y Salida</title><content type='html'>&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;Conceptos de Entrada y Salida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Comandos asociados con la salida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Pipes o tuberías&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Otras utilidades de E/S en el Shell&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;More y less&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Comandos útiles del less&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;stderr y otras redirecciones&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Conceptos de Entrada y Salida&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Es posible que ya hayas visto en algún sitio los terminos    &lt;span class="emphasis"&gt;&lt;em&gt;entrada&lt;/em&gt;&lt;/span&gt; y &lt;span class="emphasis"&gt;&lt;em&gt;salida&lt;/em&gt;&lt;/span&gt;    aplicados al mundo de la informática (quizás como    I/O -input/output- o bien E/S -entrada/salida-).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En realidad es algo más simple de lo que pueda parecer,    como vamos a ver mediante ejemplos sencillos. Cuando    estamos dentro del sistema usando la terminal bash,    generalmente tecleamos comandos para que sean ejecutados.    El hecho de que estemos simplemente presionando el teclado    implica que estamos &lt;span class="emphasis"&gt;&lt;em&gt;entrando&lt;/em&gt;&lt;/span&gt; datos    al sistema mediante el teclado. Cuando en ejemplos    anteriores hemos usado el comando &lt;span class="userinput"&gt;ls&lt;/span&gt;    , ha aparecido en pantalla un listado de archivos y    directorios, claramente el sistema ha producido    &lt;span class="emphasis"&gt;&lt;em&gt;salida&lt;/em&gt;&lt;/span&gt; de datos mediante el monitor.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Hemos puesto dos ejemplos, el teclado como vía para entrar    datos al sistema (o bien a un programa, como ya vimos con    vim), y el monitor como vía de salida de los datos.    Pero no son, ni mucho menos, las únicas posibilidades.    Los distintos puertos físicos del ordenador pueden ser    vía de entrada o de salida de datos, igualmente con la    tarjeta de sonido, módem, tarjeta de red...   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Aunque lo que nos interesa en esta sección, es manejar    la entrada y la salida de datos de y entre ciertos    programas. Preguntas como... ¿y qué puedo hacer con el    listado que me da el comando &lt;span class="userinput"&gt;ls&lt;/span&gt;    además de mostrarlo por pantalla? o ¿qué otras formas    de pasar datos y opciones a los programas existen    además del teclado? A todo esto y a algunos detalles    más daremos respuesta en este capítulo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Los sistemas UNIX (y por ello también los Linux), son    especialmente conocidos por su facilidad y eficiencia    para pasar datos entre programas y programas o entre    programas y dispositivos, siendo esta una de sus múltiples    ventajas.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Otros conceptos importantes dentro de estos son los de    &lt;span class="emphasis"&gt;&lt;em&gt;entrada estándar&lt;/em&gt;&lt;/span&gt; y    &lt;span class="emphasis"&gt;&lt;em&gt;salida estándar&lt;/em&gt;&lt;/span&gt; (stdin y stdout    respectivamente). Por defecto, stdin apunta al teclado    (los datos, se toman generalmente por defecto del teclado),    y stdout apunta a la pantalla (por defecto los programas    suelen enviar la salida por pantalla).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Comandos asociados con la Salida&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Son, principalmente &lt;span class="userinput"&gt;echo&lt;/span&gt;,    &lt;span class="userinput"&gt;cat&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En primer lugar, echemos un vistazo al comando    &lt;span class="userinput"&gt;echo&lt;/span&gt;. Este comando nos permite    "imprimir" cosas en la pantalla.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Veamos algunos ejemplos:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina ~ $&lt;/span&gt; &lt;span class="userinput"&gt;echo "Hola, usuario de Linux"&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Hola, usuario de Linux&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ves, por defecto el comando &lt;span class="userinput"&gt;echo&lt;/span&gt;    recibe las cadenas de texto entre comillas (simples o dobles),    y saca por defecto a la pantalla lo que le pasamos como    argumento; aunque puede enviar la salida a otros sitios,    como podrás comprobar más adelante.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Adelantándonos un poco, el shell puede hacer operaciones aritméticas    básicas, y podemos aprovecharlas con el comando &lt;span class="userinput"&gt;echo&lt;/span&gt;:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina ~ $&lt;/span&gt; &lt;span class="userinput"&gt;echo $[5*3]&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;15&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Cambiemos de comando, vamos a aprender ahora el comando    &lt;span class="userinput"&gt;cat&lt;/span&gt;. Es un comando útil que será    nuestro amigo a partir de ahora.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;    &lt;span style="font-size:100%;"&gt;&lt;span class="userinput"&gt;cat&lt;/span&gt; tiene asociada la entrada    al teclado por defecto, y la salida a la pantalla.    Asi que si lo llamamos sin argumentos, simplemente    tecleando &lt;span class="userinput"&gt;cat&lt;/span&gt;, tecleamos y pulsamos    INTRO, volverá a imprimir en pantalla cada línea que    nosotros tecleemos:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina ~ $&lt;/span&gt; &lt;span class="userinput"&gt;cat&lt;/span&gt;&lt;br /&gt;&lt;span class="userinput"&gt;Escribo esto&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Escribo esto&lt;/span&gt;&lt;br /&gt;&lt;span class="userinput"&gt;Y escribo esto otro&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Y escribo esto otro&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Continuará hasta que le mandemos detenerse manteniendo    pulsada la tecla CONTROL y presionando a la vez la tecla    C. Puede parecernos poco útil el funcionamiento por defecto    del comando &lt;span class="userinput"&gt;cat&lt;/span&gt;. Pero observemos    ahora el funcionamiento más común de este comando, que    es mostrar el contenido de un fichero:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina ~ $&lt;/span&gt; &lt;span class="userinput"&gt;cat directorio/mifichero&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Esto es el contenido del fichero&lt;br /&gt;mifichero que se encuentra en ~/directorio.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Este es el uso más frecuente para el comando    &lt;span class="userinput"&gt;cat&lt;/span&gt;, tomar como entrada un fichero    y sacar su contenido por la salida. Por defecto es por    la pantalla, pero descubriremos después que puede enviar    el contenido de un fichero por otras vías.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ya habrás imaginado, los ficheros de disco pueden ser    objeto de entrada (leer su contenido) o de salida (escribir    la salida de un determinado comando a un fichero). El    comando siguiente, &lt;span class="userinput"&gt;touch&lt;/span&gt; nos    da la posibilidad de crear un fichero vacío con el nombre    que nosotros le especifiquemos:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina ~ $&lt;/span&gt; &lt;span class="userinput"&gt;touch minuevofichero&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Así crearemos un fichero nuevo vacío al que podremos    posteriormente enviar la salida de nuestros comandos.    Si listas el fichero con &lt;span class="userinput"&gt;ls -l minuevofichero    &lt;/span&gt;    verás como efectivamente su tamaño es cero.    No obstante, &lt;span class="userinput"&gt;touch&lt;/span&gt; puede hacer    alguna otra cosa, como explicaremos en secciones    posteriores.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Otro comando útil es el comando &lt;span class="userinput"&gt;grep&lt;/span&gt;.    Este comando por defecto lee de stdin (la entrada estándar),    y envía los datos a la salida estándar (stdout). El objetivo    primordial del comando grep es, "devolver" las líneas que    contienen la cadena de texto que le pasamos al principio.    Por ejemplo:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;grep hola&lt;/span&gt;&lt;br /&gt;&lt;span class="userinput"&gt;Esta frase no contiene la palabra, por lo tanto no la repetirá&lt;/span&gt;&lt;br /&gt;&lt;span class="userinput"&gt;Esta frase contiene la palabra hola, por lo que la repetirá&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Esta frase contiene la palabra hola, por lo que la repetirá&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ves, el comando &lt;span class="userinput"&gt;grep&lt;/span&gt; ha identificado    las líneas que contenian la palabra que le pasamos como primer    argumento.&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Pipes o tuberías&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Hasta ahora hemos estado practicando de dónde toman    los datos algunas de las utilidades más comunes, y hacia    dónde envían su salida. Lo siguiente que tenemos que    plantearnos sería... ¿no podríamos "conectar" de alguna    forma la salida de un programa y hacer que otro programa    lea de ella?   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Efectivamente, podemos conseguir esto. El caracter    &lt;span class="userinput"&gt;|&lt;/span&gt; nos permite crear estas conexiones    entre programas en el shell. Ejemplo:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;cat mifichero | grep gato&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Lo que este comando hará será lo siguiente: La primera    parte antes de la barra vertical, conseguirá el contenido    del fichero &lt;span class="prompt"&gt;mifichero&lt;/span&gt;, y con la barra    vertical, en lugar de sacarlo por la pantalla, lo enviará    a la entrada estándar (stdin) de tal forma que el programa    &lt;span class="userinput"&gt;grep&lt;/span&gt; leerá desde stdin el contenido    del fichero &lt;span class="prompt"&gt;mifichero&lt;/span&gt;. El concepto del    efecto que esto produce es fácil de entender: el comando    que va detrás de la barra lee de la salida que dió el    comando anterior. Es obvio que lo que obtendremos serán    las líneas del fichero &lt;span class="prompt"&gt;mifichero&lt;/span&gt; que    contienen la palabra "gato" por la pantalla (stdout).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ves, no estamos pasando ninguna opción ni al comando    &lt;span class="prompt"&gt;cat&lt;/span&gt; ni al comando &lt;span class="prompt"&gt;grep&lt;/span&gt;.    Esto es porque el primero (cat) envía la salida    por defecto a stdout, y grep, si recuerdas, lee por defecto    de stdin (que al usar la barra vertical, hemos hecho que    stdin sea la salida del primer comando y no las líneas    que tecleemos a continuación como hicimos anteriormente).    Pero los pipes con la barra vertical podremos emplearlos    con otros programas que no tengan este comportamiento por    defecto, esto es, que su salida no apunte por defecto    a stdout (podría apuntar, por ejemplo, a un fichero) o    que no lean por defecto de stdin. Podremos hacer que tengan    este comportamiento pasándoles determinadas opciones    si disponen de ellas. Es muy común la opción    &lt;span class="userinput"&gt;-&lt;/span&gt; (un solo guión) para hacer    que un programa lea de stdin o escriba a stdout si tiene    esta funcionalidad; seguro que te encuentras algun comando    que tenga esta posibilidad más adelante.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Otros caracteres que nos permiten crear "pipes", son    &lt;span class="userinput"&gt;&lt;&lt;/span&gt; y &lt;span class="userinput"&gt;&gt;&lt;/span&gt;.    Generalmente, este par de caracter trabajan con un fichero    a un lado y un comando a otro. Me explico; veamos primero    el caracter &lt;span class="userinput"&gt;&lt;&lt;/span&gt;:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;grep gato &lt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Esta línea es equivalente a la del ejemplo anterior.    El contenido del fichero que ponemos a la derecha del    signo se va a la entrada estándar de la que lee el comando    que ponemos a su izquierda, por lo tanto esta línea    conseguiría exactamente el mismo efecto que la del ejemplo    anterior.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Ahora el signo contrario. A la izquierda del signo    &lt;span class="userinput"&gt;&gt;&lt;/span&gt; ponemos un comando, y a la    derecha el nombre del fichero al que queremos que se escriba    la salida del comando. Por ejemplo:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls -la &gt; listado&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La lista del contenido del directorio actual que el comando    &lt;span class="prompt"&gt;ls&lt;/span&gt; sacaría normalmente por pantalla, en vez de eso se    ha escrito en el fichero &lt;span class="prompt"&gt;listado&lt;/span&gt;. Si el fichero    no existía, se ha creado, y si existía y tenía contenido,    ha sido sobreescrito, asi que tengamos cuidado.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El uso de los signos &lt;span class="userinput"&gt;&gt;&gt;&lt;/span&gt; juntos, tiene    una funcionalidad similar al uso de un signo solamente, y    puede sernos útil muchas veces:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;echo "Esta es otra línea" &gt;&gt; texto&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;    Vemos en qué es similar a lo anterior; la línea "Esta es otra línea    se ha escrito al fichero &lt;/span&gt;&lt;span class="prompt" style="font-weight: normal;"&gt;texto&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;. Si el fichero    no existía, ha sido creado, y la diferencia, si existía    y tenía contenido, la línea se ha escrito al final del fichero,    debajo del contenido que ya tenía. Este comportamiento nos puede    ser muy útil de cara a ir añadiendo líneas a un archivo sin necesidad    de tener que abrirlo con un editor. &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Otras utilidades de E/S en el Shell&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Aunque es adelantar un poquito, vamos a ver cómo la entrada    estándar, la salida estándar y alguna cosa más "están" en    el sistema de archivos.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La entrada estándar (stdin) está enlazada mediante el    dispositivo (sobre lo que se hablará más adelante)    &lt;span class="prompt"&gt;/dev/stdin&lt;/span&gt;:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;echo "hola" | cat /dev/stdin&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;hola&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Con el comando &lt;span class="prompt"&gt;echo&lt;/span&gt;, escribimos la palabra    "hola" a la salida estándar, que con la barra vertical, se    pasa a la entrada estándar, pero como le estamos pasando    un argumento a &lt;span class="prompt"&gt;cat&lt;/span&gt;, lee de &lt;span class="prompt"&gt;/dev/stdin&lt;/span&gt;    que... ¡sorpresa! ha resultado ser la entrada estándar. Si hubiesemos    escrito el mismo comando quitando &lt;span class="prompt"&gt;/dev/stdin&lt;/span&gt;,    el resultado habría sido el mismo, puesto que si a &lt;span class="prompt"&gt;cat&lt;/span&gt;    no le pasamos ningún argumento, lee desde stdin. No    te preocupes si no puedes comprender del todo lo que hace    este ejemplo, simplemente tú asocia &lt;span class="prompt"&gt;/dev/stdin&lt;/span&gt;&lt;/span&gt; con la entrada    estándar que es accesible desde el sistema de ficheros.   &lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La salida estándar está asociada a &lt;span class="prompt"&gt;/dev/stdout&lt;/span&gt;:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;cat fichero &gt; /dev/stdout&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;--contenido de fichero--&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Aquí, estamos enviando el contenido de &lt;span class="prompt"&gt;fichero&lt;/span&gt;    a &lt;span class="prompt"&gt;/dev/stdout&lt;/span&gt; que, curiosamente, igual que en el caso    anterior, ha resultado "conectar" con la salida estándar, esto es, la    pantalla.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Por último, os presentaremos a nuestro basurero particular :-) , que es    &lt;span class="prompt"&gt;/dev/null&lt;/span&gt;. Nos puede ser útil para cuando    queramos despreciar la salida de un comando, que ni salga    por pantalla ni que se quede escrito en un fichero,    simplemente que se pierda:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;cat mimayorfichero &gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Una ventaja de /dev/null con respecto a los basureros físicos    es que nunca se llena ;-) , podemos "arrojarle" toda salida    que queramos despreciar.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;more y less&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;    &lt;span style="font-size:100%;"&gt;&lt;span class="userinput"&gt;more&lt;/span&gt; y &lt;span class="userinput"&gt;less&lt;/span&gt; son dos comandos    útiles a la hora de paginar. Paginar es ver un archivo o una salida larga    por partes (o páginas), puesto que de otra forma sólo podríamos ver el final de esta    salida larga. Pongamos por ejemplo que quisiésemos leer un archivo largo.    Como ya sabes, esto podrías hacerlo con el editor vim, pero también podrías    hacerlo con cat y la ayuda de estos dos comandos:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;cat archivolargo | more&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;more &lt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;more archivolargo&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ya sabemos, los dos primeros comandos son exactamente equivalentes. Pero    el tercero tiene una pequeña diferencia con respecto a los anteriores.    Si introducimos uno de los dos primeros con un archivo largo, entonces veremos    que el programa more nos indica en la parte inferior "Más" o "More", y nada más;    mientras que si introducimos el tercer comando, en la parte inferior de la terminal    nos aparecerá "More (15%)", esto es, el porcentaje del fichero que estamos mostrando.    La diferencia pues entre estos comandos es que en los dos primeros, more no conoce    la longitud de los datos que vienen por la stdin, simplemente los procesa conforme    el usuario se lo pide; mientras que en el tercer caso, el funcionamiento de more    es conocer la longitud del fichero que se le pasa como primer argumento, y después    paginarlo igual que hacía con los datos de stdin. Esto es importante; en UNIX    y en Linux podemos trabajar con la stdin y stdout conforme vayamos necesitando    sus datos, sin necesidad de saber cuál es su longitud o sin miedo de que estos    vayan a perderse.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En lo que respecta al comando &lt;span class="userinput"&gt;more&lt;/span&gt;, podemos seguir    paginando hacia abajo con la barra espaciadora, hasta llegar al final del fichero    o de los datos de entrada; o bien presionar la tecla &lt;span&gt;&lt;span class="keycap"&gt;q&lt;/span&gt;&lt;/span&gt; en     cualquier momento para abandonar el programa.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El comando &lt;span class="userinput"&gt;less&lt;/span&gt; es un "more" de GNU mejorado. Si    recuerdas, con more sólo podíamos paginar hacia abajo, y bajar página por página.    Con less podemos hacer algunas cosas más, como volver arriba o abajo, o bajar o subir    línea por línea. Se puede usar igual que los ejemplos anteriores del comando    more, con la diferencia de que una vez que estemos viendo la entrada paginada,    además de poder bajar con la barra espaciadora, podemos subir y bajar con las    flechas de dirección, o bien con las teclas de "avanzar página" y "retroceder página"    de nuestro teclado. En el momento de salir, lo haremos igualmente presionando    la tecla &lt;span&gt;&lt;span class="keycap"&gt;q&lt;/span&gt;&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify; font-weight: bold;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-weight: normal;" name="chap06-5-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Comandos útiles de less&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;     Frente a &lt;span class="userinput"&gt;more&lt;/span&gt;, &lt;span class="userinput"&gt;less&lt;/span&gt; nos ofrece     algunos comandos que nos ayudan a buscar cadenas y patrones dentro del      buffer que less esté visualizando. Como ya es costumbre en este manual     os proporcionamos una tabla con los comandos más utilizados en less,     por supuesto hay muchos más, pero la idea no es reproducir la página     del manual.    &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;     Para invocar a &lt;span class="userinput"&gt;less&lt;/span&gt; podemos hacerlo con un     &lt;span class="emphasis"&gt;&lt;em&gt;pipe&lt;/em&gt;&lt;/span&gt; o directamente así:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt" style="font-weight: normal;"&gt;$&lt;/span&gt;&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;span style="font-weight: normal;" class="userinput"&gt;less fichero1 fichero2 fichero3&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="table"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="id2481307"&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="title"&gt;&lt;span style="font-size:100%;"&gt;Tabla 6.1. Órdenes más comunes de less&lt;/span&gt;&lt;/p&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Órdenes más comunes de less" border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Comando&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Descripción&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Ejemplo de uso si aplica&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:n&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Examina el siguiente fichero en la lista         de argumentos de less        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:p&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Examina el fichero anterior en la lista         de argumentos de less        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:e fichero&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Examina el &lt;span class="emphasis"&gt;&lt;em&gt;fichero&lt;/em&gt;&lt;/span&gt;         pasado como argumento        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:e /etc/xml/docbook/catalog&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:x N&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Examina el primer fichero de la lista         si N no ha sido especificado, en caso         contrario examina el fichero que esté         en la posición N de la lista.        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:x 6&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:d&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Elimina el fichero que se está examinando         de la lista        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;= o ^G o ^F&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Da información adicional sobre el fichero         incluyendo el nombre, el número de línea         el %...        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;=&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;!comando&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Nos permite ejecutar el comando como          si estuvieramos en una shell. !! ejecutará         el último comando ejecutado. Si se incluye         en el comando el símbolo % será reemplazado         por el fichero que se está examinando en          ese momento, y # por el ultimo fichero          examinado. Si no se especifica un comando         devolverá una shell que se tomará de la          variable de entorno SHELL.        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;!xmllint --valid --noout %&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/patrón&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Se busca en el fichero la cadena especificada         por patrón. Si no se especifica ningun          patrón se utilizará el último patrón buscado.         Si el primer caracter de patrón es un * se         buscará el patrón en todos los ficheros de         la lista. La búsqueda es siempre hacia         posiciones posteriores al cursor, es decir,          hacia adelante.        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/*gfdl&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;?patrón&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Idéntico en todo a / pero la búsqueda se hace         hacia atrás.        &lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;?fdisk&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;s fichero&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;         Si el buffer que se está visualizando no es         un fichero sino información leida de un pipe         podemos guardar el buffer en          &lt;span class="emphasis"&gt;&lt;em&gt;fichero&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;        &lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;s ~/temp/log&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota: &lt;/span&gt;Una letra precedida de ^ significa que hay que pulsar primero la tecla       &lt;span&gt;&lt;span class="keycap"&gt;Ctrl&lt;/span&gt;&lt;/span&gt; de forma que &lt;span class="emphasis"&gt;&lt;em&gt;^G&lt;/em&gt;&lt;/span&gt; es lo mismo       que decir:       &lt;span&gt;&lt;span class="keycap"&gt;Ctrl&lt;/span&gt;&lt;/span&gt;-&lt;span&gt;&lt;span class="keycap"&gt;G&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; Es muy util ajustar la variable de entorno PAGER a less (export PAGER=/usr/bin/less) dado que así las páginas del manual se mostrarán con &lt;span class="prompt"&gt;less&lt;/span&gt; y podrás utilizar      sus funciones de búsqueda de patrones.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;Recuerda que puedes utilizar more y less con otros comandos distintos      que produzcan mucha     salida, y usarlos para ver la salida detalladamente.    &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;     Otro pequeño truco, es que si estás en una terminal, puedes ver las líneas     anteriores (que ya no se muestran en pantalla) manteniendo pulsada la tecla     de las mayúsculas (no el bloqueo de mayúsculas) y a continuación presionando     las teclas "avanzar página" y "retrocer página" de tu teclado para moverte      por líneas anteriores de tu sesión en una terminal.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;stderr y otras redirecciones&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt; &lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    Hemos visto stdin y stdout, entrada y salida estándar, respectivamente.    Sabemos que el siguiente ejemplo listará los contenidos del directorio actual    y despreciará ese listado, enviándolo a &lt;span class="prompt"&gt;/dev/null&lt;/span&gt;:   &lt;/span&gt;&lt;/p&gt;&lt;pre style="font-weight: normal;" class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls ./ &gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls directorio_inexistente/ &gt; /dev/null&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;ls: directorio_inexistente: No existe el fichero o el directorio.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    En el primer caso, todo fue como esperábamos, la salida del listado    fue simplemente despreciada. Pero... ¿qué ha pasado en el segundo caso?    Con el signo &gt; le decíamos que enviase la salida estándar, en este caso,    a /dev/null. Y, como no te hemos mentido, la salida estándar fue a /dev/null.    Lo que ha pasado es que el mensaje de error no ha ido a stdout; porque de haber    sido así habría sido despreciado. ¿Dónde ha ido entonces el mensaje de error?    Es sencillo, a &lt;span class="userinput"&gt;stderr&lt;/span&gt;. La mayoría de los programas    imprimen stderr por pantalla; aunque podrían (como hacen algunos), escribir los    mensajes de error a un fichero, o por qué no, despreciarlos.   &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    Algunos programas hacen estas cosas con stderr; cosas que ya hemos aprendido    nosotros a hacer con stdout. Una solución posible sería que stderr fuese    a stdout, y a partir de ahí, nosotros ya pudiésemos redirigir stdout    como sabemos. Conseguir esto no es difícil, se hace con el operador    &lt;span class="userinput"&gt;&gt;&amp;amp;&lt;/span&gt;  :   &lt;/span&gt;&lt;/p&gt;&lt;pre style="font-weight: normal;" class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls directorio_inexistente/ &gt; /dev/null 2&gt;&amp;amp;1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    Ahora sí será despreciada stderr; pero analicemos este comando por partes,    y entendámoslo bien. Debemos saber que en él, "2" representa a stderr, y que    "1" representa a stdout. Más cosas; este comando tiene dos partes. La primera    es &lt;span class="prompt"&gt;ls directorio_inexistente/ &gt; /dev/null&lt;/span&gt; y la segunda    es &lt;span class="prompt"&gt;2&gt;&amp;amp;1&lt;/span&gt;. En las redirecciones de salida complejas, como    es esta, el shell las interpreta "al revés", esto es, de derecha a izquierda.    Primero interpreta lo que hemos dicho que es el segundo comando, y luego interpreta    el primero. Lo que ocurre entonces es lo siguiente: primero, stderr va a stdout    por el segundo comando que se procesa en primer lugar, y luego stdout     (que ya "contiene"    a stderr) se va a /dev/null. Entonces conseguimos el efecto deseado, despreciar    tanto stdout como stderr; aunque podríamos haber hecho otras cosas con ellas,    lo importante es que ambas "salidas" habrían ido al mismo sitio.   &lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    Pero puede ocurrirte (y de hecho te ocurrirá), que desees tratar por separado    stdout y stderr. Si se entendió el ejemplo anterior esto no debería causar problemas.    Vamos a poner, como caso práctico, que vamos a listar una serie de archivos o     directorios;    los que existan se escribirán sus detalles en un fichero, y los que  no obtendremos    el error en otro fichero distinto:   &lt;/span&gt;&lt;/p&gt;&lt;pre style="font-weight: normal;" class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls -l fichero1 fichero2 fichero3 &gt; existentes 2&gt;inexistentes&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;span class="userinput"&gt;ls -l fichero1 fichero2 fichero3 1&gt;existentes 2&gt;inexistentes&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p style="font-weight: normal;"&gt;&lt;span style="font-size:100%;"&gt;    Estos dos comandos son absolutamente equivalentes. Recordemos que este tipo de     comandos    son interpretados de derecha a izquierda. En el primero de ellos, al principio    stderr se escribirá al fichero inexistentes, y después el resto (o sea, stdout) se    escribirá al fichero existentes. En el segundo, primero 2 (stderr) se escribirá    a inexistentes, y después 1 (stdout) se escribirá a existentes. Usando cualquiera    de ellos, al final tendremos en el fichero &lt;span class="prompt"&gt;existentes&lt;/span&gt; los detalles    de los ficheros existentes y en el fichero &lt;span class="prompt"&gt;inexistentes&lt;/span&gt; el error    producido por los ficheros (o directorios) que no existen. Este ejemplo es bastante    ilustrativo de cómo podemos tratar separadamente stderr y stdout.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;tt&gt;&lt;tt&gt;   &lt;/tt&gt;&lt;/tt&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-3924948907343686269?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/3924948907343686269/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=3924948907343686269' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/3924948907343686269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/3924948907343686269'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-6-entrada-y-salida.html' title='Capitulo 6: Entrada y Salida'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-4344301944535332411</id><published>2007-11-09T09:30:00.000-08:00</published><updated>2007-11-09T10:03:23.720-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 5: Usuarios y Grupos. Permisos</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;V Usuarios y Grupos. Permisos&lt;br /&gt;Usuarios&lt;br /&gt;Administración de usuarios&lt;br /&gt;Grupos&lt;br /&gt;Administración de grupos&lt;br /&gt;Permisos y dueños&lt;br /&gt;Comando su&lt;br /&gt;SUID&lt;br /&gt;Sudo&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Usuarios&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;         &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; es un sistema multiusuario por lo que es necesario la     administración (segura) de los distintos usuarios que van a hacer uso de los recursos    del sistema. De momento no vamos a dar grandes nociones de seguridad, pero sí una    introducción a los tipos de usuarios y qué privilegios deben tener.        &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;          Dentro de un sistema existen al menos 3 tipos de usuarios.        &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;          &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Usuarios normales&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; con más o menos privilegios que harán     uso de los recursos del sistema. Son generalmente inexpertos y propensos a causar     problemas. Simplemente deben poder usar algunos programas y disponer de un directorio     de trabajo.   &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;    &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Usuarios de Sistema&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; son aquellos encargados de los demonios     del sistema, recordemos que para &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; todo es un fichero,     el cual tiene un dueño y ese dueño tiene privilegios sobre él. Así, es necesario    que algún usuario del sistema &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;posea&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; los procesos de los    demonios, como veremos más adelante.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Resumiendo, es necesario que para algunos servicios del sistema se creen usuarios    (generalmente para demonios). Como puede ser el caso de Mail, irc... Estos usuarios     tendrán los privilegios necesarios para poder hacer su tarea, gestionar estos     usuarios es de gran importancia. No obstante, este tipo de usuarios no necesita    que se le asigne un shell, puesto que simplemente poseerán los demonios, pero    no será necesario que hagan &lt;span class="prompt"&gt;login&lt;/span&gt; en el sistema.   &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;          &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;ROOT&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Este es &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;dios&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; ;-) Como ya habéis     leido en capítulos anteriores cuidado con lo que se hace al entrar en el sistema     como root. Él lo puede todo, en principio no hay restricciones    para ÉL (aunque algunos programas nos avisarán de que estamos haciendo una auténtica    burrada desde el punto de vista de la seguridad).   &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Además del criterio anterior, existe un criterio secundario para clasificar a los    usuarios de un sistema. Ya vamos conociendo la tendencia de los UNIX y Linux,    primero, por hacer que casi todo sea un fichero, y segundo, por hacer que    absolutamente todo tenga un dueño (como iremos descubriendo a medida que usamos    el sistema, nada se deja al azar en este aspecto), incluidos los procesos    que se están ejecutando en el sistema. Otro concepto que lleva a esta segunda    clasificación es, el de los usuarios de los servicios del host. Este tipo de usuarios    simplemente accede remotamente a algunos servicios de nuestra máquina, tales como    correo-electrónico o FTP. Esto nos lleva a definir:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;     &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Usuarios de login&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Estos primeros, pueden hacer login     en el sistema y usar una shell en él. Es decir, tienen una shell válida     de inicio (como se indica más abajo), generalmente,      &lt;span class="prompt"&gt;/bin/bash&lt;/span&gt;.    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Usuarios sin login&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Este tipo de usuarios, bien son     usuarios de sistema, o bien usuarios de los servicios del host. En ambos casos     no pueden hacer login en el sistema directamente ni usar un shell. En otras     palabras, no tienen asignado un shell válido. Su misión, es "poseer" algunos     archivos y directorios del sistema, y manejarlos restringidamente a través     de algunos programas (el servidor FTP, el servidor de correo electrónico, etc.     darán a los usuarios de los servicios del host los privilegios suficientes:     almacenar mensajes, etc.). En el caso de los usuarios de sistema, poseerán     además algunos procesos (en el capítulo de procesos aprenderemos más     acerca de este sub-tipo especial de usuarios).    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="text-align: justify;" class="sect2" lang="es"&gt;&lt;div  class="titlepage" style="font-family:arial;"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap05-1-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Administración de Usuarios.&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;      La administración de usuarios se realiza en todas las distribuciones de      manera muy parecida, dada la herencia &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;UNIX&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;,     aunque en el fondo todas hacen lo mismo. Según la política que lleven lo      pueden realizar de una manera u otra, por lo que aquí veremos la forma     la forma interna de trabajar de los programas a la hora de añadir o quitar     usuarios, y al final expondremos ejemplos concretos de las distros más     conocidas.     &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;      ¿Cómo añadir un usuario al sistema? Hay que seguir una serie de pasos que      relatamos a continuación. Pero antes veremos la estructura de los     archivos que vamos a tocar.    &lt;/span&gt;&lt;/p&gt;&lt;div  class="itemizedlist" style="font-family:arial;"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;/etc/password&lt;/span&gt; - Archivo que mantiene la base de datos de      los usuarios del sistema y tiene la siguiente forma:    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;nombre_de_usuario:password(si es shadow será x):uid:gid:comentario:home_del_usuario:shell&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Estos campos son:    &lt;/span&gt;&lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Nombre de Usuario&lt;/span&gt; - Es el nombre con el que entrará       en el sistema.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Password&lt;/span&gt; - La palabra de paso necesaria      para entrar (cifrada). Si nuestro sistema      usa shadow (explicado después), este campo será una       &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;x&lt;/em&gt;&lt;/span&gt;     &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;UID&lt;/span&gt; - (User ID) Número que lo identifica en el       sistema, recordemos que los ordenadores se llevan mejor con       los números.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;GID&lt;/span&gt; - (Group ID) Número que identifica al grupo       principal al que pertenece el usuario.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Comentario&lt;/span&gt; - Opcional, si es necesario aclarar algo,       esto solo es para el administrador, pues el sistema no lo usa.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;home_del_usuario&lt;/span&gt; - Ruta absoluta del directorio de      trabajo del usuario.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Shell&lt;/span&gt; - Intérprete de comandos del usuario, que       será el que use inmediatamente después de entrar en el sistema,       por defecto es &lt;span class="prompt"&gt;/bin/bash&lt;/span&gt;. Para usuarios sin login,      aunque puede que ahora no lo necesites, la shell no válida típica      para poner en este campo es &lt;span class="prompt"&gt;/bin/false&lt;/span&gt;.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;/etc/group&lt;/span&gt; - Archivo de los grupos del sistema;  de su      administración y uso hablaremos en el siguiente apartado. El archivo tiene      la siguiente estructura:    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;nombre_grupo:password:GID:lista_usuarios&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Nombre del Grupo&lt;/span&gt; - Por defecto con los comandos       habituales se crea un grupo con el mismo nombre que el usuario creado,      aunque pueden existir otros grupos con nombres específicos.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;password&lt;/span&gt; - Se usa para dar a una serie de individuos       un mismo directorio con una cuenta común.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;GID&lt;/span&gt; - (Group ID) Número de Identificación en el       Sistema del grupo.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;lista de usuarios&lt;/span&gt; que pertenecen al grupo, separados       por comas.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;/etc/shadow&lt;/span&gt; - Para sistemas que usen shadow, que no es más      que una medida de seguridad. Los sistemas que no usan shadow guardan el     password      en &lt;span class="prompt"&gt;/etc/passwd&lt;/span&gt; pero este archivo tiene la peculiaridad de     que debe ser legible por todo el mundo, si no, no podría ni hacerse un      &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;ls&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Este archivo podría caer en manos de un usario      ilegítimo y este ejercer técnicas de crackeo sobre las claves. Como solución      del problema lo que se hace es almacenar todos los datos de los usuarios     en el &lt;span class="prompt"&gt;/etc/password&lt;/span&gt; menos sus contraseñas; que se almacenan      en &lt;span class="prompt"&gt;/etc/shadow&lt;/span&gt;, el cual sí tiene restringidos los permisos      y no es accesible por los usuarios normales.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario:password:días del último cambio:     dias antes del cambio:Dias despues del cambio:     tiempo de aviso:dias antes de la inhabilitacion:     perido que lleva caducado:reservado:&lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="circle"&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Usuario&lt;/span&gt; - Nombre del usuario     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;password&lt;/span&gt; - Aquí sí, es el password cifrado.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Tiempo del último cambio de password&lt;/span&gt; - Pero el tiempo       cuenta desde el 1 de enero de 1970, comienzo de la era UNIX.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Días antes del cambio&lt;/span&gt; - Periodo (en días) donde el       password debe ser cambiado.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Dias despues del cambio&lt;/span&gt; - En los días después donde       debe ser cambiado.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Tiempo del aviso&lt;/span&gt; - Periodo en el que el sistema tiene       que avisar de la necesidad del cambio.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Inhabilitación&lt;/span&gt; - Días antes de la inhabilitacion de       la cuenta.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Perido caducado&lt;/span&gt; - Días desde el 1 de enero de 1970 en       el que la cuenta está deshabilitada.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;      &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Campo reservado&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Bien ahora, ya que conocemos la estructura de los archivos, creemos un nuevo usuario,     sólo tendremos que usar un editor, que por razones de seguridad son     &lt;b class="userinput"&gt;vipw&lt;/b&gt; para el archivo &lt;span class="prompt"&gt;/etc/passwd&lt;/span&gt; y     &lt;b class="userinput"&gt;vigr&lt;/b&gt; para editar &lt;span class="prompt"&gt;/etc/group&lt;/span&gt;; ambos usan como     editor el que esté en la variable &lt;span class="prompt"&gt;$EDITOR&lt;/span&gt; del sistema, y     &lt;span class="prompt"&gt;passwd&lt;/span&gt; para crear el password. Sigamos los siguientes pasos:   &lt;/span&gt;&lt;/p&gt;&lt;div  class="orderedlist" style="font-family:arial;"&gt;&lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Lo primero es entrar como root     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$ &lt;/span&gt;&lt;b class="userinput"&gt;su -&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;password: &lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;vipw /etc/passwd&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Antes de nada, el comando &lt;span class="prompt"&gt;su&lt;/span&gt; se explica al final de este      capítulo.     Ya estamos editando el fichero &lt;span class="prompt"&gt;/etc/passwd&lt;/span&gt;, ahí estarán las      lineas de otros usuarios que ya estén creados. Esto que sigue es un     ejemplo.     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;b class="userinput"&gt;prueba:x:1005:1005::/home/prueba:/bin/bash&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Hemos escrito un nombre cualquiera (prueba), el password le ponemos       &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;x&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; dado que es un sistema con shadow. Si queremos      crear una cuenta sin contraseña, en este campo en vez de la x no      pondremos nada. ADVERTENCIA: Esto es un considerable riesgo de       seguridad. Incluso una cuenta de usuario puede usarse para hallar      información útil para posteriormente poder atacar un sistema.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Ahora hay que tocar en &lt;span class="prompt"&gt;/etc/group&lt;/span&gt; para crear el grupo      del usuario (todo usuario tiene un grupo principal), le damos el mismo      nombre que al usuario, y el GID que hemos puesto antes, el 1005.       Por supuesto, tanto los UID como los GID no pueden estar repetidos,      así que nos aseguramos de coger uno que no esté ya cogido.      Entonces, hacemos:     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;vigr /etc/group&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;b class="userinput"&gt;prueba:x:1005:&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Editamos &lt;span class="prompt"&gt;/etc/shadow&lt;/span&gt; :     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;b class="userinput"&gt;prueba:!:12173:0:99999:7:::&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Bueno lo peor será calcular la fecha de creación pero sino randomized()      :-). Notad que en el campo password le hemos puesto       &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;!&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; porque ahora le daremos un password con       &lt;b class="userinput"&gt;passwd&lt;/b&gt;.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div class="informalexample"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;passwd prueba&lt;/b&gt; &lt;a name="passwd"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/1.png" alt="1" border="0" /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Enter new UNIX password:&lt;/span&gt; &lt;a name="primera"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/2.png" alt="2" border="0" /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Retype new UNIX password:&lt;/span&gt; &lt;a name="segunda"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/3.png" alt="3" border="0" /&gt;&lt;br /&gt;   &lt;/span&gt;&lt;/pre&gt;&lt;div class="calloutlist"&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Callout list" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05.html#passwd"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/1.png" alt="1" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;         Ejecutamos passwd y pasamos el nombre del          usuario como argumento.        &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05.html#primera"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/2.png" alt="2" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;         Introducimos el password para ese usuario,         hay que darse cuenta de que a medida que         escribimos, por razones obvias de seguridad         no se irá escribiendo nada.        &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05.html#segunda"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/3.png" alt="3" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;         Repetimos la password        &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Si no hay error, listo.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Ahora le tenemos que crear el directorio de trabajo, por convenio      los directorios de trabajo de los usuarios normales están bajo      &lt;span class="prompt"&gt;/home&lt;/span&gt;, y suelen ser &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;.     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;mkdir /home/prueba&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Copiamos los archivos de inicio desde &lt;span class="prompt"&gt;/etc/skel&lt;/span&gt;      , que contiene principalmente archivos de configuración por defecto.     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;cp /etc/skel/.* /home/prueba&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Y por último, hay que hacer que tome posesión de lo que es suyo:     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;chown prueba.prueba -R  /home/prueba&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      Este último comando se explica más adelante. Ahora sólo falta       hacer:     &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;su - prueba&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;      También, en vez de usar &lt;span class="prompt"&gt;su&lt;/span&gt;,      podemos hacer login en el shell directamente con el nuevo usuario      creado para comprobar que lo hemos hecho correctamente.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Esto es lo que hace cualquier Linux para crear una cuenta. La forma de     borrar un usuario es igual de fácil, borrándolo en &lt;span class="prompt"&gt;/etc/passwd&lt;/span&gt;,     &lt;span class="prompt"&gt;/etc/group&lt;/span&gt; y en &lt;span class="prompt"&gt;/etc/shadow&lt;/span&gt;. Cualquier rastro     del usuario debería también ser eliminado, además de que sería bastante recomendable    (si no necesario) hacer una busqueda de los archivos que el usuario mantiene.    Esta búsqueda podría ser:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;# &lt;/span&gt;&lt;b class="userinput"&gt;find / -uid uid_del_usuario &gt; archivos_del_usuario&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    De esta manera los podemos guardar, revisar y hacer lo conveniente con los archivos.    Más sobre &lt;span class="prompt"&gt;find&lt;/span&gt; en secciones posteriores.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    A continuación veremos los comandos que hacen esto mismo y alguna diferencia entre las    distintas distribuciones.   &lt;/span&gt;&lt;/p&gt;&lt;div class="sect3" lang="es"&gt;&lt;div  class="titlepage" style="font-family:arial;"&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap05-1-1-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4 class="title"&gt;&lt;br /&gt;&lt;/h4&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;Comandos de Administración&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Estos comandos nos permitirán crear, borrar y modificar las cuentas de usuarios     en el sistema.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;    &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;adduser y useradd&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; son dos comandos que hacen prácticamente     lo mismo. Nota que el estándar es &lt;span class="prompt"&gt;useradd&lt;/span&gt;, adduser puede, en    algunas distribuciones ser un simple enlace a useradd, o simplemente no existir.    El comportamiento por defecto de &lt;span class="prompt"&gt;useradd&lt;/span&gt; es muy     subjetivo dependiendo    de la distribución de Linux que estemos usando. Así, mientras que en algunas    distribuciones hará casi todos los pasos anteriores por nosotros, en otras    sólo añadirá el usuario a &lt;span class="prompt"&gt;/etc/password&lt;/span&gt; y     &lt;span class="prompt"&gt;/etc/shadow&lt;/span&gt;, teniendo que realizar nosotros los pasos    restantes. Aun así, las opciones que recibe useradd responden igual en todas    las distros. Como ya hemos hecho con algún otro comando, puedes ver las opciones    de &lt;span class="prompt"&gt;useradd&lt;/span&gt; mediante &lt;b class="userinput"&gt;man useradd&lt;/b&gt;, moverte    con las teclas de dirección y volver al shell pulsando la tecla Q.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;         Las opciones más comunes para &lt;b class="userinput"&gt;useradd&lt;/b&gt; son:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;useradd -g users -d /home/usuario -s /bin/bash -m -k /etc/skel usuario&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div  class="itemizedlist" style="font-family:arial;"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;-g&lt;/span&gt; Indica cuál es el grupo principal al que pertenece el     usuario; en este caso, &lt;span class="prompt"&gt;users&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;-d&lt;/span&gt; Establece el que será el directorio de trabajo del     usuario, por convenio para usuarios normales, es     &lt;span class="prompt"&gt;/home/nombre_de_usuario&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;-s&lt;/span&gt; Es la shell por defecto que podrá usar el usuario después     de hacer login. Lo normal es que sea &lt;span class="prompt"&gt;/bin/bash&lt;/span&gt;, esto es,     el shell bash.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;-m -k&lt;/span&gt; Estas dos opciones se complementan. La primera,     hace que se cree el directorio de trabajo del usuario en el caso de que     este no exista. La segunda, copia los ficheros del directorio especificado     al que se ha creado del usuario.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Por último, &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; es     el nombre del usuario que estamos creando.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;     &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;-G&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; Aunque esta opción no está en el comando de ejemplo     que hemos puesto arriba, es muy útil, puesto que permite especificar la lista     de grupos a la que también pertenecerá el usuario aparte del grupo principal.     Por ejemplo &lt;span class="prompt"&gt;-G audio,cdrom,dip&lt;/span&gt; añadido en el comando     anterior haría que &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;      perteneciese a estos grupos además     de al suyo principal.     &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Siempre podemos matizar detalles en la creación de usuarios editando los ficheros    de configuración que ya conocemos.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La cuenta del usuario no estará activada hasta que no le asignemos un password.    Esto lo podemos hacer vía &lt;b class="userinput"&gt;password nombre_de_usuario&lt;/b&gt;     (para cambiar el password procederíamos exactamente de la misma forma).    Cualquier usuario normal puede cambiar su password cuando haya entrado al sistema,    bastando en este caso con escribir el comando &lt;b class="userinput"&gt;password&lt;/b&gt;    sin argumentos ni opciones.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Para desactivar una cuenta de usuario sin necesidad de borrala del sistema,    podemos editar &lt;span class="prompt"&gt;/etc/passwd&lt;/span&gt; y cambiar la x por un &lt;span class="prompt"&gt;!&lt;/span&gt;     en el campo del password. La cuenta se habilitaría asignando un password con    &lt;b class="userinput"&gt;password&lt;/b&gt; o bien volviendo a poner la &lt;span class="prompt"&gt;x&lt;/span&gt; que había,    quedando la cuenta entonces con el mismo password que tenía antes de deshabilitarla.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Podríamos, si nuestra distro dispone de ellas, utilizar las herramientas interactivas    para crear usuarios (a veces incluso existen interfaces gráficas de ventanas    para gestionar usuarios y grupos, solo accesibles por root);     generalmente &lt;span class="prompt"&gt;adduser&lt;/span&gt;. Aunque pueden resultar    más cómodas, siempre es conveniente saber el método general de creación de usuarios,    de tal forma que esos conocimientos nos servirán para cualquier distribución de    Linux que vayamos a usar.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En algún momento podríamos necesitar editar una cuenta de usuario creada, o borrarla.    Existen también comandos de administración estándares para esto; son    &lt;b class="userinput"&gt;usermod&lt;/b&gt; y &lt;b class="userinput"&gt;userdel&lt;/b&gt;. Puedes ver sus    páginas del manual con &lt;span class="prompt"&gt;man&lt;/span&gt;. Aunque, una vez más, editando los    ficheros de configuración no necesitarás memorizar opciones para efectuar esos    cambios.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El comando &lt;b class="userinput"&gt;whoami&lt;/b&gt; muestra el nombre de usuario que    está dentro del sistema usando el shell desde el que se le llama.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Grupos&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En la administración de grupos no vamos a gastar muchas energías ya que no es,    en un nivel básico, algo excesivamente complejo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Los &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;grupos&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; es una manera en los sistemas multiusuario    como &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;Linux&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; de otorgar una serie de privilegios a un conjunto    de usuarios sin tener que dárselo de forma indivial a cada uno.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El fichero encargado de mantener los grupos del sistema es    &lt;span class="prompt"&gt;/etc/group&lt;/span&gt; y también hemos visto su estructura. Por lo que veremos    los comandos que añaden, quitan y modifican los grupos; así como notas generales    en la gestión de grupos.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Hemos dicho que todo usuario tiene siempre un grupo principal al que pertenece.    Hay dos posibilidades para los usuarios normales: que todos tengan el mismo grupo    principal (generalmente &lt;span class="prompt"&gt;users&lt;/span&gt;) o que cada usuario tenga un grupo    principal específico (casi siempre del mismo nombre que el usuario). Esto responde    a las necesidades de cada sistema. En el primer caso, los directorios de trabajo    de los usuarios suelen ser accesibles por el resto de usuarios (no es lo más común);    mientras que en el caso de que cada usuario tenga un grupo principal, lo normal    es que los directorios de trabajo de cada usuario sean sólo accesibles por ese    usuario (que sí es lo más común).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La utilidad del grupo principal de un usuario se entenderá mejor cuando lleguemos    a los permisos.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Además, en el sistema hay más grupos que los principales de cada usuario. La misión    de estos otros grupos es la de otorgar unos permisos similares al conjunto de usuarios    que forman parte de él ante un directorio, un archivo, un dispositivo, etc.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Es muy común la necesidad de dar a unos cuantos usuarios permisos para que puedan,    por ejemplo, leer los documentos de un directorio determinado (por ejemplo, informes    de una empresa), al tiempo que al resto de usuarios no. Así, podríamos crear un grupo    llamado &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;contables&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, y agregar los usuarios que son contables a    este grupo. Después, haríamos pertenecer (como veremos en Permisos) el directorio    mencionado a este grupo, y le daríamos permisos de lectura para el grupo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Además de para compartir archivos o directorios entre varios usuarios, existen grupos    como &lt;span class="prompt"&gt;audio&lt;/span&gt;, &lt;span class="prompt"&gt;cdrom&lt;/span&gt;, y similares. Dispositivos    como la tarjeta de sonido, el grabador de CDs, etc. tienen como usuario "dueño" a    root, y como grupo "dueño" a uno de estos grupos. Así, para cada usuario que queramos    que pueda usar la tarjeta de sonido, debemos añadirlo al grupo &lt;span class="prompt"&gt;audio&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;div class="sect2" lang="es"&gt;&lt;div  class="titlepage" style="font-family:arial;"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="id2476932"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Administración de grupos&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Ya hemos aprendido cómo establecer el grupo principal de un usuario,      y cómo hacer a la hora de su creación que pertenezca a otros grupos     adicionales; así como el fichero &lt;span class="prompt"&gt;/etc/group&lt;/span&gt;. Así que     ya no queda mucho en este aspecto.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Para añadir un usuario a un grupo de forma manual, todo lo que hay que hacer     es editar &lt;span class="prompt"&gt;/etc/group&lt;/span&gt; y añadir al usuario a la lista del      último campo. Si ya hay usuarios, éstos se separan con comas.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Si lo que queremos es crear un nuevo grupo de forma manual, la cosa es igual     de sencilla. Al igual que ya hicimos agregando el usuario     &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;prueba&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; de forma manual, añadiremos otra entrada a este     fichero con el nombre del grupo, la x en el password, un GID que no esté     siendo usado y la lista de usuarios detrás.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     También tenemos comandos que hacen esto mismo: &lt;b class="userinput"&gt;groupadd&lt;/b&gt;     , &lt;b class="userinput"&gt;groupdel&lt;/b&gt; y &lt;b class="userinput"&gt;groupmod&lt;/b&gt;.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;     &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;groupadd&lt;/span&gt; sirve para crear un nuevo grupo:    &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;groupadd -g gid grupo&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     La opción &lt;span class="prompt"&gt;-g&lt;/span&gt; va seguida del Group ID (numérico)      que asignaremos al     grupo, y &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;grupo&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; es el nombre del grupo creado. Si no     indicamos la opción &lt;span class="prompt"&gt;-g&lt;/span&gt;, el sistema seleccionará por     nosotros un número GID que no esté siendo usado.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Lo mismo que sabemos ya sobre la edicición y borrado de usuarios es aplicable     a los grupos. Lo más fácil es editar el fichero &lt;span class="prompt"&gt;/etc/group&lt;/span&gt;     directamente; recordando que si quitamos un grupo, ningún usuario podrá     tener ese grupo como su grupo principal; y además que tendremos que cambiar     los permisos (después más en esto) de los archivos que perteneciesen a este     grupo pues de no hacerlo los estaríamos dejando asignados a un GID      inexistente para el sistema, y esto no es recomendable.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Un comando curioso es &lt;b class="userinput"&gt;groups&lt;/b&gt;, que mostrará     una lista de grupos a los que el usuario actual pertenece.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Permisos y dueños&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Todos y cada uno de los elementos del sistema &lt;span class="prompt"&gt;/&lt;/span&gt; de Linux tienen    dueño, ya sean ficheros, directorios, o enlaces a dispositivos. Por un lado, tienen    un &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; dueño, y por otro, un &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;grupo&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;    dueño. El usuario y el grupo que son dueños de un elemento no tienen por qué guardar    una relación del tipo que el usuario debería estar dentro del grupo o cosas por el    estilo. Son totalmente independientes. Así, puede existir un fichero que tenga como    usuario propietario a &lt;span class="prompt"&gt;username&lt;/span&gt;, un usuario normal, y tener como    grupo propietario al grupo &lt;span class="prompt"&gt;root&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Cuando se trabaja en el sistema, los programas "hacen dueños" de los ficheros creados    durante la sesión al usuario de esta sesión y a su grupo principal por defecto;    aunque esto puede cambiarse. Es lógico, que los ficheros que estén bajo el directorio    de trabajo de un usuario le pertenezcan.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Siempre que tratemos con permisos y con dueños de elementos, debemos tener siempre    presente el hecho de que el sistema de ficheros de Linux es     &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;jerárquico&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;; esto implica que los cambios que hagamos, por    ejemplo, en un directorio, pueden influir en el resto de elementos que están    contenidos en un nivel inferior a éste (los archivos que contiene, los directorios    que contiene, lo que contienen esos otros directorios, y así sucesivamente).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Con un simple &lt;b class="userinput"&gt;ls -l&lt;/b&gt; en cualquier parte del sistema, podemos    ver en la forma &lt;span class="prompt"&gt;usuario   grupo&lt;/span&gt; los dueños de cada elemento    que sale en el listado largo. Entonces ya sabemos cómo comprobar esto.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El comando &lt;b class="userinput"&gt;chown&lt;/b&gt; (CHange OWNer - cambiar propietario)    permite cambiar el propietario de los elementos del sistema de archivos. Pero    es lógico que si somos un usuario normal no podremos cambiar de propietario    los elementos que pertenecen a root o a otros usuarios. En cambio, como root    podremos cambiar el propietario de cualquier cosa. Aquí describimos las opciones    más usadas de este comando, pero puedes ir mirando su página del manual del    sistema.   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chown usuario elemento(s)&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chown usuario.grupo elemento(s)&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En el primero de los dos comandos anteriores, el usuario dueño de     &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;elementos(s)&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; será cambiado a &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.    El grupo deuño de &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;elemento(s)&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; se conservará el que estuviera    antes de introducir este comando.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Con respecto al segundo comando, actúa exactamente igual que el anterior, con la    pequeña diferencia que también cambiará el grupo dueño de     &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;elemento(s)&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; pasando a ser &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;grupo&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. Si sólo    queremos cambiar el grupo de un elemento o lista de ellos, podemos usar el comando    &lt;b class="userinput"&gt;chgrp&lt;/b&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chgrp grupo elemento(s)&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;    &lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;elemento(s)&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; puede ser una lista de archivos y directorios,    o simplemente uno de ellos. Podemos usar los wildcards conocidos (como por ejemplo    el asterisco: &lt;span class="prompt"&gt;*&lt;/span&gt; para indicar varios archivos con una sola    expresión. La importante opción &lt;b class="userinput"&gt;-R&lt;/b&gt; permite cambiar dueños    de directorios y de todo lo que tengan debajo, es decir, recursivamente:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chown -R usuario.grupo directorio/&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Este comando cambiará el usuario y grupo dueños tanto de     &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;directorio/&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; como de todo lo que contenga hasta cualquier nivel,    es decir, todo lo que esté "debajo" de &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;directorio&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, y el     directorio mismo cambiarán de dueño.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    ¿Y para qué todo esto de los dueños de archivos y directorios? Para poder asignar    permisos adecuadamente.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Un archivo tiene distintos niveles de permisos: lectura, escritura y ejecución.    Los permisos sobre un archivo (o directorio) pueden ser distintos para el usuario    dueño, para los usuarios pertenecientes al grupo dueño, y por último para el resto    de los usuarios del sistema. Así, podemos hacer que el usuario dueño puede leer,    escribir, y ejecutar un fichero; que el grupo dueño solo pueda leerlo, y que el    resto de usuarios del sistema no tengan ningún permiso sobre él, por ejemplo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Una buena asignación de dueños de elementos junto con una política adecuada de    permisos sobre estos elementos, permiten obtener dos cosas: un sistema multiusuario,    y un sistema seguro.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Si haces un &lt;span class="prompt"&gt;ls -l&lt;/span&gt; en un directorio que tenga algunas cosas verás    algo como:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;ls -la bin/&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;&lt;br /&gt;drwxr-xr-x   2 root     root         4096 Apr 16 17:19 .&lt;br /&gt;drwxr-xr-x  21 root     root         4096 May 23 20:34 ..&lt;br /&gt;-rwxr-xr-x   1 root     root         2872 Jun 24  2002 arch&lt;br /&gt;-rwxr-xr-x   1 root     root        94364 Jun 25  2001 ash&lt;br /&gt;-rwxr-xr-x   1 root     root       472492 Jun 25  2001 ash.static&lt;br /&gt;-rwxr-xr-x   1 root     root        10524 Jul 19  2001 aumix-minimal&lt;br /&gt;lrwxrwxrwx   1 root     root            4 Feb  4  2002 awk -&gt; gawk&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Fíjate en el campo de más a la izquierda del listado. Podemos ver como cuatro grupos.    El primero es de un caracter solamente. Este caracter es una &lt;span class="prompt"&gt;d&lt;/span&gt;    si el elemento listado es un directorio, una &lt;span class="prompt"&gt;l&lt;/span&gt; si el elemento    es un enlace, y un guión &lt;span class="prompt"&gt;-&lt;/span&gt; si el elemento es un archivo normal.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    A continuación hay tres grupos. Cada uno de estos grupos tiene tres letras, pudiendo    ser estas &lt;span class="prompt"&gt;rwx&lt;/span&gt; o pudiendo ser sustituidas en algún caso por un guión.    El primero de estos grupos indica los permisos que tiene sobre el elemento listado    su usuario dueño; el segundo grupo indica los permisos que tienen sobre el elemento    los usuarios que pertenezcan al grupo dueño, y el tercer grupo indica los permisos    que tienen sobre el elemento el resto de usuarios del sistema.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En el caso de un archivo o un enlace (sobre los que hablaremos posteriormente),     la &lt;span class="prompt"&gt;r&lt;/span&gt; en cualquiera de estos    "grupos" indica que se tienen permisos de lectura sobre el elemento. La    &lt;span class="prompt"&gt;w&lt;/span&gt; indica que se tienen permisos de escritura sobre el elemento,    y la &lt;span class="prompt"&gt;x&lt;/span&gt; indica que se tienen permisos de ejecución sobre el elemento.    Un guión sustituyendo a cualquiera de estas letras indica que no se tiene el permiso    al que está sustituyendo. Así, veamos algún ejemplo del listado anterior:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;-rwxr-xr-x   1 root     root         2872 Jun 24  2002 arch&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Es un archivo porque su primer caracter es un guión. Su usuario dueño es root, y su    grupo dueño es el grupo root también. root tiene todos los permisos sobre él:    &lt;span class="prompt"&gt;rwx&lt;/span&gt;, esto quiere decir que puede leer el archivo arch, escribir    en él y ejecutarlo. El grupo root sólo lo puede leer y ejecutar, y el resto de    usuarios del sistema, también sólo pueden leerlo y ejecutarlo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El caso de los directorios es un poco distinto. Los permisos &lt;span class="prompt"&gt;rwx&lt;/span&gt;    para un directorio, indican: la &lt;span class="prompt"&gt;r&lt;/span&gt; y la &lt;span class="prompt"&gt;x&lt;/span&gt; para    el caso de un directorio difícilmente se entienden separadas. Son necesarias    para que un usuario pueda "examinar" ese directorio, ver lo que tiene y navegar por    él. La &lt;span class="prompt"&gt;w&lt;/span&gt; indica que el usuario que posea este permiso puede    colocar nuevos archivos en este directorio; así como también borrarlo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Lo más común es que los directorios que deban poder ser "examinados" por todos los    usuarios tengan permisos &lt;span class="prompt"&gt;r-x&lt;/span&gt; en el tercer grupo de permisos. Pero    con estos permisos no podrán colocar nada dentro de ese directorio, aunque sí    podrán hacerlo dentro de un directorio de nivel inferior en el que sí tengan permisos    de escritura. Ten en cuenta que si tenemos por ejemplo un directorio llamado    &lt;span class="prompt"&gt;superior/&lt;/span&gt; y dentro de éste tenemos un directorio llamado    &lt;span class="prompt"&gt;personal/&lt;/span&gt;, y que un usuario tienen permisos de escritura en este    segundo directorio, que es de nivel inferior, para poder acceder a él y escribir,    debe este usuario poseer, como mínimo, permisos &lt;span class="prompt"&gt;r-x&lt;/span&gt; en el    de nivel superior, esto es, en &lt;span class="prompt"&gt;superior/&lt;/span&gt;. Por otra parte, esto    es absolutamente lógico: ¿cómo va a poder escribir un usuario en un directorio    si no puede llegar hasta él? Esto mismo también se aplica para la lectura. Por     ejemplo,    el servidor web no podrá servir un directorio a la Internet si no dispone de permisos    &lt;span class="prompt"&gt;r-x&lt;/span&gt; para los directorios superiores a él.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Para cambiar los permisos de los elementos del sistema de ficheros, usamos el comando    &lt;b class="userinput"&gt;chmod&lt;/b&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chmod -R ABC elemento&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La opción -R es opcional, y cumple exactamente la misma función que en el comando    &lt;span class="prompt"&gt;chown&lt;/span&gt;. A B y C son un número de una cifra respectivamente.    El primer número representa los permisos que estamos asignando al usuario dueño    , el segundo los del grupo dueño, y el tercero los del resto de usuarios. Cada una    de las cifras posibles corresponde con los permisos del usuario en binario; aunque    es más fácil aprenderse qué hace cada cifra que pasar la cifra a binario cada    vez que queramos cambiar los permisos a algo. Algunos ejemplos:   &lt;/span&gt;&lt;/p&gt;&lt;div  class="itemizedlist" style="font-family:arial;"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El &lt;span class="prompt"&gt;4&lt;/span&gt; en binario es &lt;span class="prompt"&gt;100&lt;/span&gt;, por tanto, los     permisos que otorga son &lt;span class="prompt"&gt;r--&lt;/span&gt;, esto es, sólo lectura.    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El &lt;span class="prompt"&gt;5&lt;/span&gt; en binario es &lt;span class="prompt"&gt;101&lt;/span&gt;, por tanto, los     permisos que otorga son &lt;span class="prompt"&gt;r-x&lt;/span&gt;, lectura y ejecución.    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El &lt;span class="prompt"&gt;6&lt;/span&gt; en binario es &lt;span class="prompt"&gt;110&lt;/span&gt;, por tanto, los     permisos que otorga son &lt;span class="prompt"&gt;rw-&lt;/span&gt;, lectura y escritura.    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El &lt;span class="prompt"&gt;7&lt;/span&gt; en binario es &lt;span class="prompt"&gt;111&lt;/span&gt;, por tanto, los     permisos que otorga son &lt;span class="prompt"&gt;rwx&lt;/span&gt;, lectura, escritura y ejecución.    &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Los permisos de ejecución sólo se otorgarán a programas o scripts (con los que    trataremos después); ya que hacerlo a los archivos normales carece por completo    de sentido. Así, un comando de ejemplo podría ser:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;chmod 640 mitexto&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Este comando asignaría permisos de lectura y de escritura al usuario propietario,    y permisos de lectura a los usuarios del grupo dueño, y ningún permiso al resto de    usuarios para el archivo &lt;span class="prompt"&gt;mitexto&lt;/span&gt;. Puedes ir haciendo pruebas     combinando los distintos números y ver los    permisos que otorgan mediante &lt;b class="userinput"&gt;ls -l&lt;/b&gt;. Recuerda que los    directorios que quieras que puedan ser "examinados", debe tener permisos de    "ejecución" por parte de los usuarios que quieras que puedan acceder a ellos, por    ejemplo podrías asignarlos con el número 5. A los que además quieras que puedan    crear archivos en ese directorio, podrías darle esos permisos mediante el número    7. Con la opción &lt;span class="prompt"&gt;-R&lt;/span&gt; puedes hacer que los permisos se asignen    de modo recursivo a un directorio y a todo lo que hay debajo de él.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Un modo muy común para los directorios que deban ser accesibles por todo el mundo    es 755, de forma que el usuario dueño pueda además escribir. Los directorios    &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; suelen tener permisos 750 para que el resto de usuarios    no puedan acceder al directorio de trabajo de un usuario.&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Aviso:     Una mala asignación de permisos puede dar lugar a ataques locales, si dejamos     a algunos usuarios permisos para modificar partes importantes del sistema     de ficheros.&lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Ten cuidado cuando cambies permisos, sobre todo si eres      &lt;span class="prompt"&gt;root&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;div class="warning"  style="margin-left: 0.5in; margin-right: 0.5in;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Un modo muy común de añadir permisos de ejecución a un archivo (generalmente    un &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;script&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;) para todos los usuarios del sistema, sin tener    que estar recordando qué números otorgan permisos de ejecución, es usar la opción    &lt;span class="prompt"&gt;+x&lt;/span&gt; de &lt;span class="prompt"&gt;chmod&lt;/span&gt;, por ejemplo:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;chmod +x mi_script.sh&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Esta forma de asignar permisos es extensible, y según los casos, más sencilla que    la de los números. En general es así:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;chmod ABC fichero&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Donde A es &lt;span class="literal"&gt;u&lt;/span&gt; (usuario), &lt;span class="literal"&gt;g&lt;/span&gt; (grupo) o bien    &lt;span class="literal"&gt;a&lt;/span&gt; (todos). Cuando es &lt;span class="literal"&gt;a&lt;/span&gt;, se puede omitir.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    B es &lt;span class="literal"&gt;+&lt;/span&gt; o bien &lt;span class="literal"&gt;-&lt;/span&gt; , indicando el primero    añadir un cierto permiso y el segundo quitarlo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    C es &lt;span class="literal"&gt;r&lt;/span&gt; (lectura), &lt;span class="literal"&gt;w&lt;/span&gt; (escritura) o bien    &lt;span class="literal"&gt;x&lt;/span&gt; (ejecución).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Ejemplos:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$ &lt;/span&gt;&lt;b class="userinput"&gt;chmod g+w fichero&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$ &lt;/span&gt;&lt;b class="userinput"&gt;chmod -r fichero&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$ &lt;/span&gt;&lt;b class="userinput"&gt;chmod u+x fichero&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El primer comando otorga permisos de escritura sobre &lt;span class="literal"&gt;fichero&lt;/span&gt;    a los usuarios del grupo al que el fichero pertenece.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El segundo comando elimina los permisos de lectura sobre &lt;span class="literal"&gt;fichero&lt;/span&gt;    a todo el mundo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El tercer comando da al usuario dueño de &lt;span class="literal"&gt;fichero&lt;/span&gt; permisos de    ejecución.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Comando su&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El comando &lt;b class="userinput"&gt;su&lt;/b&gt; (Set User) está relacionado con el login    en el sistema y con los permisos. El uso principal de este comando es que un    usuario normal adquiera los permisos de otro usuario del sistema (incluido root)    siempre y cuando sepa su password.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Es muy común que, si somos nosotros el "dueño" de la contraseña de root, y por tanto    la persona encargada de la administración del sistema, trabajemos normalmente como    usuario normal por motivos de seguridad. Pero podemos necesitar convertirnos    en root para alguna tarea específica: reiniciar el servidor web, modificar la    configuración del sistema... para después volver a "ser" nuestro usuario normal.   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;su&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Password:&lt;/span&gt; &lt;b class="userinput"&gt;[ Escribimos el password de root ]&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;    &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;su&lt;/span&gt; llamado "a secas" como en el ejemplo anterior asume que    el usuario actual quiere adquirir los permisos de root. Si proporcionamos el    password adecuado ya los tendremos. Podemos ahora hacer las tareas de     administración que necesitemos. Escribiendo &lt;b class="userinput"&gt;exit&lt;/b&gt; volveremos    a "ser" nuestro usuario normal.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Hay gente que considera útil tener siempre "en segundo plano" una shell con permisos    de root. Esto se puede conseguir con los comandos &lt;b class="userinput"&gt;suspend&lt;/b&gt;,    &lt;b class="userinput"&gt;fg&lt;/b&gt; y &lt;b class="userinput"&gt;jobs&lt;/b&gt;. Por ejemplo:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;su&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Password:&lt;/span&gt; &lt;b class="userinput"&gt;[ Password de root ]&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;suspend&lt;/b&gt; &lt;a name="suspend"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/1.png" alt="1" border="0" /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;[1]+  Stopped                 su&lt;/span&gt; &lt;a name="infostop"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/2.png" alt="2" border="0" /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;fg %1&lt;/b&gt; &lt;a name="fg"&gt;&lt;/a&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/3.png" alt="3" border="0" /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div  class="calloutlist" style="font-family:arial;"&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Callout list" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05s04.html#suspend"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/1.png" alt="1" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Detenemos la shell con permisos de root y la dejamos "esperando".     &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05s04.html#infostop"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/2.png" alt="2" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Nos informa de que se detuvo, y le asigna el número de referencia 1     para recuperarla posteriormente.     &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="top" width="5%"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.zonasiete.org/manual/ch05s04.html#fg"&gt;&lt;img src="http://www.zonasiete.org/manual/images/callouts/3.png" alt="3" border="0" /&gt;&lt;/a&gt;&lt;/span&gt; &lt;/td&gt;&lt;td align="left" valign="top"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Recuperamos la shell con permisos de root.     &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Mediante &lt;span class="prompt"&gt;suspend&lt;/span&gt; podemos detener la shell con permisos de root    que arrancamos antes mediante &lt;span class="prompt"&gt;su&lt;/span&gt; y recuperarla cada vez que    necesitemos permisos de root sin necesidad de teclear el password    de nuevo. Escribiendo &lt;b class="userinput"&gt;exit&lt;/b&gt; en la shell con permisos de root    podríamos abandonarla definitivamente.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;    &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;su&lt;/span&gt; nos permite también adquirir los permisos de otros usuarios    del sistema siempre que tengamos su password:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;usuario@maquina $&lt;/span&gt; &lt;b class="userinput"&gt;su otrousuario&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Password:&lt;/span&gt; &lt;b class="userinput"&gt;[ Password de "otrousuario" ]&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;otrousuario@maquina $&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;otrousuario@maquina $&lt;/span&gt; &lt;b class="userinput"&gt;exit&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;usuario@maquina $&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La diferencia entre &lt;span class="prompt"&gt;su usuario&lt;/span&gt; y &lt;span class="prompt"&gt;su - usuario&lt;/span&gt;    es, que mientras que con el primer comando simplemente adquirimos los permisos    de &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, con el segundo comando es como si estuviésemos    haciendo login desde el principio con &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;usuario&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, así, todas    las variables de entorno y demás serán cargadas igual que si hubiésemos hecho    login realmente. Esto también se aplica para root (&lt;span class="prompt"&gt;su -&lt;/span&gt;). La    shell que se arranca mediante la segunda forma se llama &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;shell de    login&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, y como puedes comprobar, no se puede suspender como hicimos    anteriormente. Salimos de ellas también con &lt;span class="prompt"&gt;exit&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El usuario &lt;span class="prompt"&gt;root&lt;/span&gt; puede usar &lt;span class="prompt"&gt;su&lt;/span&gt; o    bien &lt;span class="prompt"&gt;su -&lt;/span&gt; sin necesidad de introducir ningún password para    adquirir en un shell los permisos de cualquier usuario del sistema.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;SUID&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Existe un atributo especial en los permisos para que los archivos ejecutables    puedan ser ejecutados con los permisos de su dueño, independientemente de quién    sea el usuario que lo ejecute. Esto es considerado por algunos como una bondad    de los sistemas UNIX, mientras que por otros se considera uno de sus pocos    fallos. Al margen de ese debate, a nosotros, como usuarios normales, nos    otorga una cierta comodidad de cara a aplicaciones como las que acceden directamente    al grabador de CDs por ejemplo, que necesitan muchas veces permisos de root.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Así, en este ejemplo de las aplicaciones que graban CDs, asignaríamos su dueño    a root. Poniendo el atributo SUID a estas aplicaciones, cualquier usuario que    las ejecutase, lo haría con permisos de root (ya que en este caso sería el dueño    del archivo ejecutable).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En casos como este, aplicar los atributos SUID a algunos programas resulta útil.    Pero cuidado, aunque esto es una posibilidad en Linux, es algo que debe evitarse    siempre que sea posible. Es muy peligroso desde el punto de vista de la seguridad    del sistema. A la hora de ejecutar un usuario normal una aplicación que tenga el    atributo SUID establecido, ejecuta ese proceso virtualmente como root. Si todo va    bien, no tienen por qué existir problemas. Pero si la aplicación tuviese un fallo    durante su ejecución, y retornase inesperadamente al shell por ejemplo, ¡el usuario    normal habría adquirido permisos de root! sin necesidad de conocer su contraseña,    y con esto podrá causar daños en el sistema y leer nuestra información confidencial.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Cuando hacemos un &lt;span class="prompt"&gt;ls -l&lt;/span&gt; en un directorio donde exista un programa    que sea SUID, en la columna donde se muestran los permisos, en vez de tener una    &lt;span class="prompt"&gt;x&lt;/span&gt; representando los permisos de ejecución, tendría una    &lt;span class="prompt"&gt;s&lt;/span&gt;&lt;/span&gt; indicando que ese programa es SUID, y que para los apartados    (propietario, grupo propietario o resto de usuarios) donde esté esa "s", será posible    ejecutarlo con los permisos del usuario propietario.   &lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    La forma de asignar el atributo SUID a los archivos ejectuables es la siguiente:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;#&lt;/span&gt; &lt;b class="userinput"&gt;chmod +s /usr/bin/miprograma&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Recuerda que es mejor eludir este método por razones de seguridad.&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Sudo&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="font-family:arial;"&gt;    &lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;sudo&lt;/span&gt; (SUperuser DO) es una herramieta que permite otorgar a un    usuario o grupos de usuarios normales, permisos para ejecutar algunos comandos    como root (o como otros usuarios) sin necesidad de conocer su password.     Es posible que no esté instalado    en tu distribución de Linux y tengas que instalarlo tú. En capítulos posteriores    tienes información sobre cómo instalar software adicional en el sistema.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    El fundamento de sudo reside en su fichero de configuración, el fichero    &lt;span class="prompt"&gt;/etc/sudoers&lt;/span&gt;. Este fichero tiene, en los casos más    sencillos, dos partes: una parte de &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;alias&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; y otra parte    de &lt;/span&gt;&lt;span class="emphasis"  style="font-size:100%;"&gt;&lt;em&gt;reglas&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;. La parte de alias, lo que hace es "agrupar"    de alguna manera listas de usuarios y listas de aplicaciones (incluso listas    de máquinas de una red, pero esto es más específico y no lo explicaremos aquí).    La parte de reglas define qué grupos de usuarios pueden usar qué grupos de programas    con permisos distintos de los suyos y en qué condiciones pueden hacerlo. Un fichero    sencillo que nos podría servir podría ser como:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="programlisting" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;#&lt;br /&gt;# Parte de alias&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;Cmnd_Alias GRABAR = /usr/bin/cdrecord, /usr/bin/cdrdao&lt;br /&gt;Cmnd_Alias APAGAR = /sbin/halt, /sbin/reboot&lt;br /&gt;&lt;br /&gt;User_Alias USERSGRAB = usuario1, usuario2&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# Parte de reglas&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;USERSGRAB ALL = NOPASSWD: GRABAR&lt;br /&gt;&lt;br /&gt;%cdrom  ALL = NOPASSWD: GRABAR&lt;br /&gt;%apagar  ALL = NOPASSWD: APAGAR&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Esto con respecto al fichero &lt;span class="prompt"&gt;/etc/sudoers&lt;/span&gt;. En la parte de alias,    &lt;span class="prompt"&gt;Cmnd_Alias&lt;/span&gt; indica una lista de comandos (programas) que serán    luego referidos mediante el nombre que le demos (asginar alias aquí tiene similitud    con asignar variables de entorno en el shell). &lt;span class="prompt"&gt;User_Alias&lt;/span&gt; agrupa    a una lista de usuarios bajo un mismo nombre (en nuestro caso USERSGRAB).   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    En cuanto a la parte de reglas, primero se especifican los usuarios (puede ser    un alias definido anteriormente como en el primer caso, o bien puede ser un grupo    de usuarios del sistema, precediendo su nombre por &lt;span class="prompt"&gt;%&lt;/span&gt;), el    &lt;span class="prompt"&gt;ALL&lt;/span&gt; que sigue hace referencia a en qué máquinas podrán hacer esto,    y el &lt;span class="prompt"&gt;NOPASSWD:&lt;/span&gt; indica que lo harán con permisos de root y sin    necesidad de teclear su password. Después viene el alias con los comandos que podrán    ejecutar en las condiciones que hemos dado.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Recuerda que el fichero &lt;span class="prompt"&gt;/etc/sudoers&lt;/span&gt; se edita con el    comando &lt;b class="userinput"&gt;visudo&lt;/b&gt;, por razones de seguridad, y como root.    &lt;span class="prompt"&gt;sudo&lt;/span&gt; no altera la estructura de permisos del sistema de ficheros    de Linux, es decir, por muchos cambios que hagamos en el fichero de configuración    de sudo, los permisos de los programas seguirán siendo los mismos. La diferencia    está en que estos "permisos especiales" que estamos otorgando a algunos usuarios    se aplican cuando el programa que se quiere ejecutar se llama mediante sudo; así,    un usuario que quiera ejectar el programa &lt;span class="prompt"&gt;cdrdao&lt;/span&gt; con estos    permisos especiales deberá hacerlo así:   &lt;/span&gt;&lt;/p&gt;&lt;pre  class="screen" style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;sudo cdrdao [opciones]&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Esto es lo más básico que necesitas saber sobre sudo para ejecutar algunos    comandos cómodamente como usuario normal al tiempo que mantienes la seguridad    del sistema. &lt;span class="prompt"&gt;sudo&lt;/span&gt; es una herramienta que permite configuraciones    mucho más complejas que las que hemos visto aquí; siempre puedes leer sus páginas    del manual del sistema (&lt;span class="prompt"&gt;man sudo&lt;/span&gt; y &lt;span class="prompt"&gt;man sudoers&lt;/span&gt;),    o visitar &lt;a href="http://www.courtesan.com/sudo/"&gt;http://www.courtesan.com/sudo/&lt;/a&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;div  class="navfooter" style="font-family:arial;"&gt;&lt;hr style="margin-left: 0px; margin-right: 0px; height: 3px;"&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Navigation footer" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align="left" width="40%"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="font-family: arial;"&gt;   &lt;/p&gt;&lt;div class="navfooter"&gt;&lt;hr style="margin-left: 0px; margin-right: 0px; height: 3px; font-family: arial;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-4344301944535332411?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/4344301944535332411/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=4344301944535332411' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/4344301944535332411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/4344301944535332411'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-5-usuarios-y-grupos-permisos.html' title='Capitulo 5: Usuarios y Grupos. Permisos'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-5692497530573308433</id><published>2007-11-08T12:01:00.000-08:00</published><updated>2007-11-08T12:26:22.582-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 4: VIM básico</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Conceptos básicos&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;¿ Como funciona VIM?&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Modo edición&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Modo comandos&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Modo especial: Visual&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;~/.vimrc&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Obtener ayuda&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Conceptos básicos&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    A lo largo de la administración de un sistema Linux    podemos toparnos con la necesidad de editar un     fichero de configuración o algo parecido. Bien, en Linux    hay muchos editores que pueden satisfacer nuestras     necesidades (nano, pico, jedit...). En este capítulo    &lt;span class="emphasis"&gt;&lt;em&gt;NO&lt;/em&gt;&lt;/span&gt; vamos a cubrir una guerra    típica "VIM vs. Emacs". Simplemente mostraremos    un editor muy potente y queremos que con estas nociones cualquier    usuario pueda beneficiarse de la potencia de VIM    sin tener que entrar en muchos detalles ni en cosas complicadas.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Antes de nada vamos a introducir un poco sobre qué    es VIM, de dónde viene y qué vamos a aprender en este    capítulo.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    VIM es un editor de textos para Linux. Es un derivado    de VI, VIM significa VI iMproved, es decir, el mismo    editor VI pero mejorado. Y en este capítulo aprenderemos    a hacer un uso básico de este fabuloso editor.&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;¿Como funciona VIM?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    VIM tiene dos grandes modos para funcionar, el modo de    edición y el modo comandos. Para pasar del modo comandos    (que es en el que se inicia VIM) al modo edición,    pulsamos la tecla &lt;span&gt;&lt;b class="keycap"&gt;I&lt;/b&gt;&lt;/span&gt; o &lt;span&gt;&lt;b class="keycap"&gt;Insert&lt;/b&gt;&lt;/span&gt;.    Para pasar del modo edición al modo comandos pulsaremos    la tecla &lt;span&gt;&lt;b class="keycap"&gt;Esc&lt;/b&gt;&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Para iniciar VIM, haremos lo siguiente:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; vim &lt;fichero&gt;&lt;br /&gt;&lt;/fichero&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    VIM iniciará en el 'Modo Edición' que explicaré en la siguiente sección.&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap04-2-1"&gt;&lt;/a&gt;Modo Edición&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Este es el modo en el que podremos editar un     texto, o crear uno nuevo... Si pulsamos la     tecla &lt;span&gt;&lt;b class="keycap"&gt;I&lt;/b&gt;&lt;/span&gt; o &lt;span&gt;&lt;b class="keycap"&gt;Insert&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b class="keycap"&gt;Re.Pág&lt;/b&gt;&lt;/span&gt;     y &lt;span&gt;&lt;b class="keycap"&gt;Av.Pág&lt;/b&gt;&lt;/span&gt;.         otra vez cambiaremos el modo Insert por el      modo Replace. No creo que haya que explicar      mucho las diferencias entre insertar texto o      reemplazar el texto. Para movernos por el fichero     podemos utilzar las flechas, Re.Pág y Av.Pág.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Notas: Para volver al modo comandos, sirve con pulsar la tecla Esc.&lt;br /&gt;&lt;/span&gt;&lt;div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap04-2-2"&gt;&lt;/a&gt;Modo comandos&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Este es el modo más interesante de VIM, con     él podemos hacer cosas muy curiosas, como      por ejemplo, activar el resaltado de sintaxis,     deshacer, abrir un nuevo fichero, guardar, etc..    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     En la siguiente tabla explicaré los comandos que     pueden resultar más interesantes.    &lt;/span&gt;&lt;/p&gt;&lt;div class="table"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="id2473354"&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Tabla 4.1. Comandos más usuales en VIM&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Comandos más usuales en VIM" border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Comando&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Descripción&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Ejemplo de uso (si aplica)&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:w&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Guarda el buffer en el fichero&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:w [fichero]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Guarda el buffer en fichero (como un         Save as...)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:w ~/ficherito&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:q&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Salir de VIM&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:q!&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Salir de VIM sin guardar los cambios&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:wq&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Salvar y guardar&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:u&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Deshacer&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;b class="keycap"&gt;Ctrl&lt;/b&gt;&lt;/span&gt;-&lt;span&gt;&lt;b class="keycap"&gt;R&lt;/b&gt;&lt;/span&gt; (^R)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Rehacer&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:d ó :dN&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Borrar la línea corriente o borrar N líneas a        partir de la actual.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;--&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:syntax [ on | off ]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Activa/Desactiva el resaltado de         sintaxis&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:syntax on&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:s/[patrón]/[reemplazo]/g&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Sustituye [patrón] por [reemplazo] en la         línea actual.&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;s/hoal/hola/g&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:![comando] [argumentos]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Ejecuta [comando] pasándole los argumentos         [argumentos] en        el shell&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:!gcc -g -O0 -o prueba prueba.c&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:+[número]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Baja [número] líneas&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:+256&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:-[número]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Sube [número] líneas&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:-12&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:[número]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Va a la línea [número]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:1207&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:+/[patrón]&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Busca [patrón] en el documento&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;:+/donde te metes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="sect2" lang="es"&gt;&lt;div  style="text-align: justify;font-family:arial;" class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap04-2-3"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;El modo especial: VISUAL&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     Para entrar a este modo tenemos que pulsar &lt;span&gt;&lt;b class="keycap"&gt;v&lt;/b&gt;&lt;/span&gt;     en el modo comandos. Para salir de el pulsaremos     &lt;span&gt;&lt;b class="keycap"&gt;Esc&lt;/b&gt;&lt;/span&gt;.    &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;     El modo VISUAL nos permitirá eliminar grandes bloques de      texto sin tener que ir borrando línea a línea. Para ello      entraremos en el modo VISUAL (pulsando &lt;span&gt;&lt;b class="keycap"&gt;v&lt;/b&gt;&lt;/span&gt;)     y nos moveremos con los cursores para seleccionar el bloque     que queremos eliminar. Una vez tenemos seleccionado el      bloque, pulsamos &lt;span&gt;&lt;b class="keycap"&gt;Supr&lt;/b&gt;&lt;/span&gt; y ya está, VIM nos     informará de que hemos eliminado un bloque de "n" líneas.&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;~/.vimrc&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Vim cuenta con un fichero de configuración en ~/.vimrc que nos puede    ser muy util para personalizar nuestro VIM. Cualquier comando de VIM     se puede introducir en él. Además de esto, hay muchas opciones que     pueden cambiarse y hasta sentencias condicionales (algo que queda    fuera del alcance de este capítulo). Cualquier línea que comience    con " (comillas) será ignorada por VIM. A esto lo llamamos comentarios.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como ejemplo mostraremos como habilitar el resaltado de sintaxis para    todos los ficheros que abra el lector:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="programlisting"&gt;&lt;span style="font-size:100%;"&gt;" " "&lt;br /&gt;" ~/.vimrc&lt;br /&gt;" " "&lt;br /&gt;"&lt;br /&gt;" Activamos el resaltado de sintaxis&lt;br /&gt;syntax on&lt;br /&gt;&lt;br /&gt;" Activamos la barra de informacion&lt;br /&gt;set ruler&lt;br /&gt;&lt;br /&gt;" Desactivamos la compatibilidad con VI&lt;br /&gt;set nocompatible&lt;br /&gt;&lt;br /&gt;" El identado lo hace VIM&lt;br /&gt;set autoindent&lt;br /&gt;&lt;br /&gt;" Características especiales de VIM&lt;br /&gt;if has("autocmd")&lt;br /&gt;" Habilitamos características propias de cada tipo de fichero&lt;br /&gt;filetype plugin indent on&lt;br /&gt;" Volvemos a la última línea que habíamos editado.&lt;br /&gt;" ( Juntar las 2 siguientes líneas en una )&lt;br /&gt;autocmd BufReadPost * if line("'\"") &gt; 0 &amp;amp;&amp;amp;&lt;br /&gt;line ("'\"") &lt;= line("$") | exe "normal g'\"" | endif endif "has("autocmd")   &lt;/span&gt;&lt;/pre&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Obtener ayuda&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Obviamente esta ha sido una introducción muy liviana a Vim. Pero ¡VIM es mucho    más!. Y el mejor punto de partida es ejecutar &lt;span&gt;&lt;b class="command"&gt;vimtutor&lt;/b&gt;&lt;/span&gt;. Este    comando lo que hace es ir guiándonos paso a paso y con ejemplos. Editando buffers    (ficheros) preparados para el correcto aprendizaje de vim. Vim es muy grande, se     pueden hacer muchas cosas con él. Es muy recomendable utilizar    &lt;span&gt;&lt;b class="command"&gt;vimtutor&lt;/b&gt;&lt;/span&gt; para iniciarse en este gran editor.&lt;/span&gt;&lt;/div&gt;&lt;p style="font-family: arial;"&gt;   &lt;/p&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-5692497530573308433?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/5692497530573308433/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=5692497530573308433' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/5692497530573308433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/5692497530573308433'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-4-vim-bsico.html' title='Capitulo 4: VIM básico'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-3289515924114659238</id><published>2007-11-07T17:11:00.000-08:00</published><updated>2007-11-07T18:26:03.600-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 3: Terminal o Shell</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;III    Terminal o Shell&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;        Conceptos básicos de la terminal Bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;        Variables de entorno (Path)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;        Comandos básicos de la terminal Bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;                Referencias relativas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;                Comando cd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;                Archivos y directorios&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Terminal o Shell&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Una TERMINAL puede ser un SHELL, o un INTÉRPRETE DE COMANDOS. Probablemente muchos esten acostumbrados a usar ENTORNOS GRÁFICOS   (de ventanas) como los interfaces de Windows o de MacOS, y si habéis empezado a investigar   el escritorio de Linux después de instalar vuestra distribución, habran visto que hay varios   escritorios para usar en Linux. Los entornos gráficos nos permiten ver colores, e interactuar   con los botones de los programas para elegir opciones.  &lt;/span&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;   No obstante, la manera más habitual de administrar una máquina Linux (instalar paquetes,   ver los registros de actividad, crear o modificar usuarios...) suele hacerse desde un    terminal   o intérprete de comandos, que es en modo texto, y generalmente nos muestra un PROMPT como    ahora   veremos. Un prompt es lo que el intérprete de comandos escribe automáticamente en cada lína   antes de que nosotros podamos darle instrucciones mediante COMANDOS. Cada comando,    generalmente   , termina presionando la tecla INTRO para que éste sea recibido por la máquina y ejecutado.  &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;   Aparte de dar instrucciones a nuestra máquina, desde una terminal podremos editar textos,   archivos de configuración, apagar y reiniciar el sistema, instalar nuevos programas, leer   el correo, conectar al IRC, usar un navegador... y muchas cosas más. Aprenderemos que los   sistemas gráficos no son imprescindibles, y lo que es mejor, al final te terminará gustando   todo esto de los comandos (por mucho que ahora pienses que no). Para que te vayas haciendo   una idea de cómo funciona todo esto y lo comprendas, vamos a pasar a explicar cómo funciona   la terminal que usan por dfecto actualmente casi todos los sistemas Linux. En un capítulo   posterior veremos detenidamente los sistemas gráficos en Linux.&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect1" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h2 class="title" style="clear: both;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap03-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Conceptos básicos de la terminal Bash&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Cuando arranquemos nuestra máquina con Linux y termine de cargar todos los procesos    iniciales, o bien veremos una pantalla gráfica de login o una de texto. Vamos a     aprovechar este hecho para saber cómo podemos cambiar de terminal (podemos usar    varias a la vez e ir cambiando entre ellas). Pulsando las teclas Ctrl+Alt+F1     accedemos    a la primera terminal, pulsando Ctrl+Alt+F2 accedemos a la segunda, y así     sucesivamente    hasta Ctrl+Alt+F6 (Podremos volver al escritorio gráfico con Ctrl+Alt+F7 o a veces    Ctrl+Alt+F5). Es posible que no podamos acceder a la primera terminal porque    quizás esté siendo utilizada por los procesos de login gráfico si es que ya hemos    ingresado desde allí. Las terminales se suelen nombrar tty0 para la primera, tty1     para    la segunda, y así sucesivamente. También es posible, como descrubriremos luego,    abrir una terminal en otra máquina desde la nuestra, esto es, manejarla remotamente.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Siempre que estemos ante una nueva terminal, veremos que aparece ante nosotros algo    como &lt;span class="prompt"&gt;NOMBREDEMIMÁQUINA login:&lt;/span&gt;. En cada terminal se ejecuta el     programa    que produce esta salida para que nos AUTENTIFIQUEMOS en el sistema (esto es, para que    demostremos que somos usuarios registrados en el sistema y que podemos usarlo). El    programa se llama &lt;span class="prompt"&gt;login&lt;/span&gt;, y es de momento sólo importante que     recuerdes    que hay un programa que se ejecuta en cada terminal y que se encarga de     autentificarnos    en el sistema. Como vamos a practicar, &lt;span class="emphasis"&gt;&lt;em&gt;NO entraremos al sistema como root    &lt;/em&gt;&lt;/span&gt;. Bien, entremos al sistema en una de las terminales para practicar:   &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;NOMBREDEMIMÁQUINA login:&lt;/span&gt; &lt;b class="userinput"&gt;minombredeusuario&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Password:&lt;/span&gt; &lt;b class="userinput"&gt;mipassword&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Supongamos que &lt;b class="userinput"&gt;minombredeusuario&lt;/b&gt; es nuestro nombre de usuario    (recuerda que Linux distingue mayúsculas y minúsculas para los usuarios y las    contraseñas). Después de introducirlo presionaremos INTRO, y después introduciremos    nuestra contraseña. Observa que no aparecen asteriscos mientras introduces tu    contraseña (esto es por seguridad, para que nadie vea cuántos caracteres tiene tu    password), pero puedes borrar y escribir normalmente. Cuando hayas terminado, presiona    INTRO de nuevo.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Se comprobará si nuestro usuario y contraseña son correctos. De no ser así aparecerá    algo como &lt;span class="prompt"&gt;Login incorrect. Please try again&lt;/span&gt;. Esto significa que    nuestro nombre de usuario o/y contraseña son incorrectos, así que lo intentaremos    de nuevo. Cuando hagamos un login satisfactorio en el sistema, se nos mostrará algo    como:   &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="computeroutput"&gt;User [miusuario] logged in. Last login was in [FECHA] from [hostremoto_o_terminallocal]&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Donde &lt;span class="prompt"&gt;[miusuario]&lt;/span&gt; es mi nombre de usuario en la máquina,     &lt;span class="prompt"&gt;[FECHA]&lt;/span&gt; es la fecha del     último ingreso al sistema y &lt;span class="prompt"&gt;[nombre_de_host_remoto_o_terminal_local]&lt;/span&gt;    es el nombre de la máquina desde donde ingresamos la última vez en la nuestra, o el    nombre de la terminal local si el último login; por ejemplo &lt;span class="prompt"&gt;tty0&lt;/span&gt;.    En algunos casos se nos indicará las veces que se ha fallado antes de conseguir    entrar con nuestro nombre de usuario. Como veremos después, podremos saber si alguien    intenta hacerse pasar por nosotros con esta información.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Además (como después veremos en detalle), la máquina nos informará de si tenemos     correo o correo nuevo en nuestro buzón local. Puede ser algo como    &lt;span class="prompt"&gt;New mail for [misusuario]&lt;/span&gt; o &lt;span class="prompt"&gt;Mail for [miusuario]&lt;/span&gt;,    dependiendo de si hay correo no leído o leído respectivamente. Si no lo hay o bien    no se muestra nada o se muestra algo como &lt;span class="prompt"&gt;No mail for [miusuario]&lt;/span&gt;.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Una vez dentro de nuestro sistema Linux, usando BASH (justo después de hacer login,    pues es BASH la terminal por defecto), se nos mostrará lo siguiente en cada línea    antes de que podamos introducir ningún comando:   &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[miusuario@nombredemimáquina directorioactual]$&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;miusuario@nombredemimáquina /directorio/actual$&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    A esto que se muestra antes de que podamos introducir un comando le llamamos PROMPT.    Aparecerá cada vez que pulsemos INTRO. También puedes apreciar que hemos puesto dos    líneas de prompt. La primera de ellas es la que verás si usas una distribución RedHat    o basada en RedHat (Mandrake, SuSE...). La segunda es la línea que verás si usas     una distribución Debian o basada en Debian. Analicemos las distintas partes del prompt    más detenidamente:   &lt;/span&gt;&lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;miusuario&lt;/span&gt; es el nombre de usuario con el que hemos      entrado a la máquina.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;nombredemimáquina&lt;/span&gt; es el nombre de nuestra máquina sin      el dominio (por ejemplo, una máquina llamada maquina23.midominio.com,      aparecería aquí como maquina23).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;directorioactual&lt;/span&gt; es el nombre del directorio actual      en el que estamos sin la ruta completa, sólo el directorio. Como nada      más entrar al sistema, estaremos en &lt;span class="prompt"&gt;/home/miusuario&lt;/span&gt;,      lo más probable es que muestre solamente &lt;span class="prompt"&gt;miusuario&lt;/span&gt;.     &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;/directorio/actual&lt;/span&gt; la RUTA COMPLETA al directorio       actual      (explicación más abajo), que es lo que mostrarán las distribuciones      basadas en Debian. Nada más entrar deberían mostrar      &lt;span class="prompt"&gt;/home/miusuario&lt;/span&gt;, pero ahora veremos por qué esto no      es así.     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; indica que estamos en el sistema como un usuario      normal, y no como &lt;span class="prompt"&gt;root&lt;/span&gt;. Si entrásemos como root, en      vez de un $ tendríamos un # en cada línea, lo cual debería recordarnos      que "tecleemos con cautela" ;-)     &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    Observaremos un ejemplo de lo que pasaría si entrásemos como root. Sería algo así:   &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[root@mimáquina root]#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;root@mimáquina /root#&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    De nuevo, la segunda línea sería en distribuciones basadas en Debian. Recordamos que    el DIRECTORIO PERSONAL (directorio donde cada usuario puede escribir y tiene sus    archivos de configuración y su trabajo) de root es &lt;span class="prompt"&gt;/root&lt;/span&gt;, mientras    que    para los usuarios normales es &lt;span class="prompt"&gt;/home/nombredeusuario&lt;/span&gt;. Apreciamos que    ahora la señal de "teclea con cautela" ;-) al final de la línea, &lt;span class="prompt"&gt;#&lt;/span&gt;,    somos root, tenemos la fuerza, pero debemos usarla para bien puesto que es nuestra    máquina.   &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;    En cualquier momento, cerraremos nuestra sesión de terminal escribiendo     &lt;span class="prompt"&gt;logout&lt;/span&gt; o &lt;span class="prompt"&gt;exit&lt;/span&gt; y presionaremos INTRO. El programa    de login se lanzará automáticamente y podremos entrar de nuevo a la máquina como un    usuario distinto o como root.   &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Variables de entorno (Path)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Lo primero que tienes que hacer es tranquilizarte, puesto que es realmente más    sencillo de lo que su nombre aparenta. Estas variables se pueden llamar también    VARIABLES DE SHELL. Y... ¿qué es un variable? &lt;span class="emphasis"&gt;&lt;em&gt;Una VARIABLE es un nombre     al que le asignamos un valor.&lt;/em&gt;&lt;/span&gt; Un ejemplo sería asignar al nombre    "dias" el valor "7". Esto, en bash una vez iniciada la sesión podemos acerlo así:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;dias=7&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$ &lt;/span&gt; &lt;b class="userinput"&gt;dias=7&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    A partir de ahora, para entrar comandos, lo representaremos de la segunda forma;    presentaremos &lt;span class="prompt"&gt;$&lt;/span&gt; si los comandos han de ser ejecutados por un usuario    normal o &lt;span class="prompt"&gt;#&lt;/span&gt; si han de ser ejecutados por &lt;span class="prompt"&gt;root&lt;/span&gt;, en    lugar de mostrar en todos nuestros ejemplos todo el prompt completo. Debes recordar    que el comando es lo que va detrás de &lt;span class="prompt"&gt;$&lt;/span&gt; o &lt;span class="prompt"&gt;#&lt;/span&gt;    según corresponda.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Sigamos. Lo que hemos hecho arriba ha sido ASIGNAR al nombre "dias" el valor de "7".    Acabamos de crear una VARIABLE DE ENTORNO con nombre "dias" y valor "7". Sencillo,    ¿no?. Podemos introducir texto como valor de una variable poniéndolo entre comillas.    Para "referirnos" a las variables de entorno podemos usar el símbolo    &lt;b class="userinput"&gt;$&lt;/b&gt;. Para mostrar el contenido de una variable usaremos    el COMANDO &lt;b class="userinput"&gt;echo&lt;/b&gt;. Así, por ejemplo, para mostrar el valor     de la variable &lt;span class="prompt"&gt;dias&lt;/span&gt; que acabamos de crear, escribiríamos:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;echo $dias&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Lo cual nos daría como salida una nueva línea con el valor de &lt;span class="prompt"&gt;dias&lt;/span&gt;,    en este caso, 7. Nada más (por ahora) de todo esto, simplemente que nos vaya sonando.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Ahora debemos saber que BASH almacena algunas variables de entorno. Estas variables    son necesarias, y contienen, por ejemplo, el tipo de sistema operativo que se está    usando, la versión, el usuario activo, el directorio actual...   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    De todas ellas sólo nos interesa por ahora una llamada PATH (en mayúsculas, en Linux    los nombres las distinguen, también en las variables). La variable PATH es muy    importante. Puedes comprobar lo que contiene escribiendo:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;echo $PATH&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/home/usuario/bin&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como podemos observar, lo que contiene esta variable son rutas de directorios    separadas por dos puntos. &lt;span class="prompt"&gt;/bin&lt;/span&gt;, &lt;span class="prompt"&gt;/usr/bin&lt;/span&gt;,    y &lt;span class="prompt"&gt;/usr/local/bin&lt;/span&gt; son ejemplos de rutas de directorios.    ¿Para qué sirven? Es sencillo. Cuando introducimos un comando en BASH (como    los que ahora vamos a ver, y como ya hemos visto con &lt;span class="prompt"&gt;echo&lt;/span&gt;),    se busca por el archivo del mismo nombre que ejecuta ese comando, en todos los    directorios que la variable &lt;span class="prompt"&gt;$PATH&lt;/span&gt; tiene asignados. Si encuentra    el archivo (que se llama igual que el comando que tecleemos y contiene unas    instrucciones) lo ejecutará. Si no lo encuentra, nos mostrará un mensaje de error.    Todo esto puede parecer complicado, pero verás que no lo es en absoluto.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Notemos que si hacemos login como root y mostramos el contenido de    &lt;span class="prompt"&gt;PATH&lt;/span&gt;, ésta contiene algunas cosas más, como     &lt;span class="prompt"&gt;/usr/sbin&lt;/span&gt;    y &lt;span class="prompt"&gt;/sbin&lt;/span&gt; por ejemplo. Estos directorios sólo los tendremos si    entramos desde la pantalla de login como root.   &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Pero podemos añadir más directorios a nuestra variable &lt;span class="prompt"&gt;PATH&lt;/span&gt;.    Bien porque trabajemos mucho con ellos o porque es necesario para la ejecución    de algún programa. La forma de hacerlo es la siguiente:   &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;PATH="$PATH:/home/usuario/programas"&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    ¿Recordamos que la primera &lt;span class="prompt"&gt;$&lt;/span&gt; sólo indica que estamos    trabajando como un usuario normal? Entonces perfecto. Lo que hace esta línea    es simple. Al contenido de PATH añade unos dos puntos y a continuación    añade el directorio que nosotros queramos a nuestra PATH. El resultado    es que si mostramos haora el valor de PATH con &lt;b class="userinput"&gt;echo&lt;/b&gt;    obtendremos todo lo que teníamos anteriormente más el directorio que hemos    añadido.   &lt;/span&gt;&lt;/p&gt;&lt;div face="arial" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Referencias Comandos básicos de la terminal Bash&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Ciertamente, todos estos conocimientos que estamos citando pueden casi siempre     aplicarse a otras terminales como &lt;span class="prompt"&gt;sh&lt;/span&gt;, pero nos referimos a     BASH por ser la que viene por defecto con Linux. Ahora vamos a explicar el     concepto de DIRECTORIO DE TRABAJO o directorio actual. En esta línea:   &lt;/span&gt;&lt;/p&gt;&lt;div face="arial" style="text-align: justify;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    estamos trabajando en el directorio &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;. ¿Qué quiere    decir esto? Pues es fácil, que podemos "hacer referencia" a un archivo desde un    comando simplemente con el nombre de archivo y no su ruta completa si éste está    en &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; porque es el directorio de trabajo actual.    Un ejemplo rápido, vamos a editar un archivo para comprender esto, no te preocupes    por el comando &lt;span class="prompt"&gt;vim&lt;/span&gt;, puesto que lo veremos más adelante. Si estamos    en &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; y tenemos un archivo que se llama    &lt;span class="prompt"&gt;/home/usuario/mitexto&lt;/span&gt;, para editarlo, bastaría con hacer:   &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;vim mitexto&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    Como estamos trabajando en el directorio &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; y el archivo    que queríamos editar también está en el directorio de trabajo, el editorlo    encontraría sin problemas. Esto sería equivalente a hacer:   &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial;"&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;vim /home/usuario/mitexto&lt;/b&gt;&lt;br /&gt; &lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;    pero como acabas de ver, teclear la ruta completa no es en absoluto necesario    si el &lt;span class="prompt"&gt;objetivo&lt;/span&gt; de nuestro comando está en el directorio de    trabajo.&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Sugerencia: &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Puedes salir del editor pulsando: &lt;span class="prompt"&gt;Esc :wq INTRO&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;Para mas información sobre VIM mira el capítulo 4 (VIM básico)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="tip" style="margin-left: 0.5in; margin-right: 0.5in; text-align: justify; font-family: arial;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap03-3-1"&gt;&lt;/a&gt;Referencias relativas&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Este concepto es también sencillo. Partimos de que estamos otra vez     en &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; (de nuevo no te preocupes por     &lt;span class="prompt"&gt;vim&lt;/span&gt;, el comando del editor, lo usamos como un ejemplo     para que veas las referencias, no es necesario que pruebes esto porque     vamos a explicarlo más adelante), y queremos editar un archivo que está     en &lt;span class="prompt"&gt;/home/usuario/documentos/mitexto&lt;/span&gt;. Al estar en      &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, bastaría con hacer:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;vim documentos/mitexto&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Lo cual sería equivalente a hacer:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;vim /home/usuario/documentos/mitexto&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Pero como ya hemos visto, con la referencia relativa al directorio en el     que nos encontramos es suficiente. Por esto ya has podido observar que     podemos referirnos a los archivos de dos formas distintas: mediante     una &lt;span class="emphasis"&gt;&lt;em&gt;referencia relativa al directorio actual&lt;/em&gt;&lt;/span&gt; en el que     nos encontramos o mediante una REFERENCIA ABSOLUTA. Las referencias absolutas     comienzan siempre desde la raíz del sistema de archivos, &lt;span class="prompt"&gt;/&lt;/span&gt;,     y por eso siempre empiezan con &lt;span class="prompt"&gt;/&lt;/span&gt; e indican la RUTA     COMPLETA al archivo al que nos estamos refiriendo.    &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap03-3-2"&gt;&lt;/a&gt;El comando &lt;span class="prompt"&gt;cd&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Este sencillo comando, lo que nos va a permitir es cambiar nuestro directorio     de trabajo (o directorio actual). Es una abreviatura (como muchos otros     comandos) de lo que hace, en este caso de Change Directory. Podemos     necesitar cambiar nuestro directorio de trabajo si vamos a trabajar con     muchos archivos que estén en el direcotrio al que nos cambiamos, y no queremos     teclear siempres su ruta completa por resultar esto demasiado incómodo y     largo. Partimos de &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, y nos queremos cambiar     a &lt;span class="prompt"&gt;/usr/local&lt;/span&gt;, que es donde residen muchas cosas     personalizadas de nuestro sistema. Se podría hacer de la siguiente forma:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;cd /usr/local/&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Y entonces ya estaríamos en &lt;span class="prompt"&gt;/usr/local&lt;/span&gt;:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina local]$&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Si simplemente escribimos &lt;span class="prompt"&gt;cd&lt;/span&gt;, sin ningún argumento     (dato que necesita un comando para operar de una manera u otra, con     un archivo u otro... como después veremos), lo que hará será llevarnos     a nuestro directorio personal:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina local]$&lt;/span&gt; &lt;b class="userinput"&gt;cd&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Como puedes ver, ahora nuestro directorio de trabajo es     &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, que es nuestro directorio personal.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Pero hay algunas cosas que no hemos contado de las referencias relativas.     Es que dos puntos seguidos &lt;b class="userinput"&gt;..&lt;/b&gt;&lt;b class="userinput"&gt;.&lt;/b&gt; se refiere al directorio en el que nos     encontramos (directorio actual). Si estando en &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;     escribes &lt;b class="userinput"&gt;cd .&lt;/b&gt;, te darás cuenta de que no cambia     de directorio, se queda en el actual, de la misma manera que si hubieras     hecho &lt;b class="userinput"&gt;cd ..&lt;/b&gt; te habría llevado a &lt;span class="prompt"&gt;/home&lt;/span&gt;     , el directorio inmediatamente superior. Estos dos comandos equivaldrían a     &lt;b class="userinput"&gt;cd ./&lt;/b&gt; y &lt;b class="userinput"&gt;cd ../&lt;/b&gt;; es lo mismo,     pero es realente con la barra como deben utilizarse estos comandos     (puesto que nos estamos refiriendo a directorios). Utilizarlos sin ella,     puede dar lugar a confusión y equivocaciones (recuerda que los archivos     y directorios ocultos comienzan su nombre por &lt;span class="prompt"&gt;.&lt;/span&gt;).     Ahora ya sabes que para poder ir a &lt;span class="prompt"&gt;/home/usuario/documentos&lt;/span&gt;     podríamos haber hecho:    &lt;/span&gt; se refieren al     directorio inmediatamente anterior (superior) al que nos encontramos, y un     punto &lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt; cd ./documentos&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Lo cual no es muy eficiente en este caso, pero como veremos más adelante,      es de obligada utilización para ejecutar un comando en el directorio actual     si este directorio actual no está en la PATH. Por ejemplo para ejecutar un     programa (como veremos más adelante) que estuviese en     &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, al no estar esta ruta en      &lt;span class="prompt"&gt;$PATH&lt;/span&gt;, necesitaríamos hacerlo así (estando en     &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;):    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;./miprograma&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Te habrás dado cuenta de que con una referencia relativa es más cómodo,     más sencillo y más rápido. Si simplemente dijésemos desde     &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; &lt;b class="userinput"&gt;miprograma&lt;/b&gt; a     BASH, no lo encontraría, y nos devolvería que no ha encontrado el comando.     ¿Por qué? Pues es fácil, &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, que es donde     reside &lt;span class="prompt"&gt;miprograma&lt;/span&gt;, no está en &lt;span class="prompt"&gt;$PATH&lt;/span&gt;.     Bueno, la ejecución para después, ahora sigamos:    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Desde &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt; podríamos haber ido a     &lt;span class="prompt"&gt;/usr/local&lt;/span&gt; con una referencia relativa también:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;cd ../../usr/local&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Este comando sube dos niveles (al directorio inmediatamente superior a     &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;, que es &lt;span class="prompt"&gt;/home&lt;/span&gt;, y luego     al directorio inmediatamente superior a &lt;span class="prompt"&gt;/home&lt;/span&gt; que es     &lt;span class="prompt"&gt;/&lt;/span&gt;; una ez allí busca mediate referencia relativa a      &lt;span class="prompt"&gt;/&lt;/span&gt; el directorio &lt;span class="prompt"&gt;usr&lt;/span&gt;, y una vez dentro,     mediante una referencia relativa al directorio &lt;span class="prompt"&gt;usr&lt;/span&gt;,     busca el directorio &lt;span class="prompt"&gt;local&lt;/span&gt;. En este caso es más rápido     introducir &lt;b class="userinput"&gt;cd /usr/local&lt;/b&gt; que usar una referencia     relativa al directorio actual. Generalmente, usaremos referencias absolutas     (al sistema de archivos, &lt;span class="prompt"&gt;/&lt;/span&gt;) cuando lo que queremos buscar     (en este caso un directorio) se encuentre varios niveles por encima del     directorio actual, o en una ruta distinta como en este ejemplo.    &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap03-3-3"&gt;&lt;/a&gt;Archivos y directorios&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Ahora vamos a trabajar con archivos y directorios, vamos a crear directorios,     los borraremos, listaremos archivos... Todo esto no es difícil de hacer.     Si recordamos, es preferible que trabajemos como un usuario normal     y no como root, para no dañar nuestro sistema por accidente intentando     borrar un directorio importante. Empezaremos con obtener un listado de     los contenidos del directorio &lt;span class="prompt"&gt;/&lt;/span&gt;. Este se hace con el     comando &lt;b class="userinput"&gt;ls&lt;/b&gt;. Las opciones (indican al comando     la forma en la que debe trabajar) que tiene el comando     &lt;b class="userinput"&gt;ls&lt;/b&gt;&lt;b class="userinput"&gt;-a&lt;/b&gt;     y &lt;b class="userinput"&gt;-l&lt;/b&gt;. &lt;b class="userinput"&gt;-a&lt;/b&gt; indica que      se muestren todos los archivos, incluso los ocultos, y     &lt;b class="userinput"&gt;-l&lt;/b&gt; muestra un listado largo, con detalles como     el usuario al que pertenece el archivo, los permisos de ese archivo     y algunas cosas más. Los parámetros que toma &lt;b class="userinput"&gt;ls&lt;/b&gt;     principalmente es un directorio. Si no se especifica ninguno, saca     un listado del directorio actual. Veamos algunos ejemplos:    &lt;/span&gt; son principalmente &lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;ls&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;Desktop Mail documentos kernelconfig programas proyectos&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Esto es un listado de los archivos y directorios que contiene el directorio     actual, en este caso &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;. En algunas     distribuciones, los directorios aparecen en color azul, los ejecutables     en color verde, etc. pero muchas veces no hay distinción.    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;ls -l&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;&lt;br /&gt;total 44&lt;br /&gt;drwx--S--- 3 usuario usuario 4096  Mar 28 10:51 Desktop&lt;br /&gt;drwx--S--- 2 usuario usuario 4096  Mar 28 01:40 Mail&lt;br /&gt;drwxr-sr-x 3 usuario usuario 4096  Mar 28 10:24 documentos&lt;br /&gt;-rw-r--r-- 1 usuario usuario 18417 Mar 27 21:31 kernelconfig&lt;br /&gt;drwxr-sr-x 4 usuario usuario 4096  Mar 28 10:28 programas&lt;br /&gt;drwxr-sr-x 7 usuario usuario 4096  Mar 28 00:18 proyectos&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Como puedes ver, la opción &lt;b class="userinput"&gt;-l&lt;/b&gt; nos devuelve un listado     largo, en el que apreciamos permisos (que explicaremos más adelante),     dueño y grupo de archivo, fecha, nombre, tamaño, y algunos otros detalles.    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;[usuario@maquina usuario]$&lt;/span&gt; &lt;b class="userinput"&gt;ls -a&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;&lt;br /&gt;.   .bash_logout  .mcoprc  Mail&lt;br /&gt;..    .bash_profile  .mozilla  ccmsn&lt;br /&gt;.DCOPserver_usuario  .bashrc  .ssh   documentos&lt;br /&gt;.DCOPserver_usuario_:0  .viminfo  kernelconfig&lt;br /&gt;.ICEauthority   .gtkrc-kde  .wmrc   programas&lt;br /&gt;.MCOP-random-seed  .kde   .xchat   proyectos&lt;br /&gt;.Xauthority   .kderc   .xsession-errors&lt;br /&gt;.bash_history   .mcop   Desktop&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Aquí puedes ver un listado de todos los archivos y directorios, incluidos     los ocultos. Podríamos emplear las dos opciones juntas, como     &lt;b class="userinput"&gt;ls -la&lt;/b&gt; o &lt;b class="userinput"&gt;ls -al&lt;/b&gt;, lo que     nos devolvería un listado largo con todos los archivos, ocultos incluidos.     Si tienes cualquier duda o quieres saber qué parámetros acepta un comando,     simplemente escribee &lt;b class="userinput"&gt;comando --help&lt;/b&gt; y verás una     lista de opciones y argumentos que puedes usar con ese comando.     En el caso de &lt;span class="prompt"&gt;ls&lt;/span&gt;:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;ls --help&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;&lt;br /&gt;Modo de empleo: ls [OPCIÓN]... [FICHERO]...&lt;br /&gt;Muestra información acerca de los FICHEROs (del directorio actual por defecto).&lt;br /&gt;Ordena las entradas alfabéticamente si no se especifica ninguna de las&lt;br /&gt;opciones -cftuSUX ni --sort.&lt;br /&gt;&lt;br /&gt;Los argumentos obligatorios para las opciones largas son también obligatorios&lt;br /&gt;para las opciones cortas.&lt;br /&gt;-a, --all                  no oculta las entradas que comienzan con .&lt;br /&gt;-A, --almost-all           no muestra las entradas . y .. implícitas&lt;br /&gt;    --author               imprime el autor de cada fichero&lt;br /&gt;-b, --escape               imprime escapes octales para los caracteres no&lt;br /&gt;                           gráficos&lt;br /&gt;    --block-size=TAMAÑO    utiliza bloques de TAMAÑO bytes&lt;br /&gt;-B, --ignore-backups       no muestra la entradas que terminan con ~&lt;br /&gt;-c                         con -lt: ordena por ctime y muestra ctime (fecha&lt;br /&gt;                             de última modificación del fichero)&lt;br /&gt;                             con -l: muestra ctime y ordena por nombre&lt;br /&gt;                             en cualquier otro caso: ordena por ctime&lt;br /&gt;-C                         muestra las entradas por columnas&lt;br /&gt;    --color[=CUÁNDO]       especifica si se usará color para distinguir los&lt;br /&gt;                             tipos de ficheros. CUÁNDO puede ser `never',&lt;br /&gt;                             `always' o `auto'&lt;br /&gt;-d, --directory            muestra las entradas de los directorios en lugar&lt;br /&gt;                           de sus contenidos&lt;br /&gt;-D, --dired                genera el resultado para el modo `dired' de Emacs&lt;br /&gt;-f                         no ordena, utiliza -aU, no utiliza -lst&lt;br /&gt;-F, --classify             añade un indicador (uno de */=@|) a las entradas&lt;br /&gt;    --format=PALABRA       across -x, commas -m, horizontal -x, long -l,&lt;br /&gt;                             single-column -1, verbose -l, vertical -C&lt;br /&gt;    --full-time            como -l --time-style=full-iso&lt;br /&gt;-g                         como -l, pero no muestra el propietario&lt;br /&gt;-G, --no-group             no muestra la información del grupo&lt;br /&gt;-h, --human-readable       muestra los tamaños de forma legible&lt;br /&gt;                           (p.e. 1K 234M 2G)&lt;br /&gt;    --si                   análogo, pero utilizando potencias de 1000,&lt;br /&gt;                           no de 1024&lt;br /&gt;-H, --dereference-command-line  sigue los enlaces simbólicos en la línea de&lt;br /&gt;                                órdenes&lt;br /&gt;    --indicator-style=PALABRA  añade un indicador con estilo PALABRA a los&lt;br /&gt;                               nombres de las entradas: none (predeterminado),&lt;br /&gt;                               classify (-F), file-type (-p)&lt;br /&gt;-i, --inode                muestra el número de nodo-i de cada fichero&lt;br /&gt;-I, --ignore=PATRÓN        no lista las entradas que coincidan (encajen)&lt;br /&gt;                           con PATRÓN de shell&lt;br /&gt;-k                         como --block-size=1K&lt;br /&gt;-l                         utiliza un formato de listado largo&lt;br /&gt;-L, --dereference          al mostrar la información de un fichero para un&lt;br /&gt;                             enlace simbólico, muestra la información del&lt;br /&gt;                             fichero al que apunta el enlace en lugar de la&lt;br /&gt;                             del propio enlace&lt;br /&gt;-m                         rellena el ancho con una lista de entradas&lt;br /&gt;                           separadas por comas&lt;br /&gt;-n, --numeric-uid-gid      como -l, pero muestra los UIDs y GIDs numéricos&lt;br /&gt;-N, --literal              muestra los nombres literalmente (no trata p.ej.&lt;br /&gt;                           los caracteres de control de forma especial)&lt;br /&gt;-o                         como -l, pero no muestra el grupo&lt;br /&gt;-p  --file-type            añade un indicador (uno de /=@|) a las entradas&lt;br /&gt;-q, --hide-control-chars   imprime ? en lugar de los caracteres no gráficos&lt;br /&gt;    --show-control-chars   muestra los caracteres no gráficos tal y como&lt;br /&gt;                           son (predeterminado a menos que el programa sea&lt;br /&gt;                           `ls' y la salida sea un terminal)&lt;br /&gt;-Q, --quote-name           encierra los nombres de las entradas entre&lt;br /&gt;                           comillas&lt;br /&gt;    --quoting-style=PALABRA  utiliza el estilo de cita PALABRA para los&lt;br /&gt;                             nombres de las entradas:&lt;br /&gt;                             literal, locale, shell, shell-always, c, escape&lt;br /&gt;-r, --reverse              invierte el orden, en su caso&lt;br /&gt;-R, --recursive            muestra los subdirectorios recursivamente&lt;br /&gt;-s, --size                 muestra el tamaño de cada fichero, en bloques&lt;br /&gt;-S                         ordena los ficheros por tamaño&lt;br /&gt;    --sort=PALABRA         extension -X, none -U, size -S, time -t, version -v&lt;br /&gt;                           status -c, time -t, atime -u, access -u, use -u&lt;br /&gt;    --time=PALABRA         muestra la fecha según PALABRA, en lugar de la&lt;br /&gt;                           fecha de modificación:&lt;br /&gt;                             atime, access, use, ctime ó status; utiliza&lt;br /&gt;                             la fecha especificada como clave de ordenación&lt;br /&gt;                             si --sort=time&lt;br /&gt;    --time-style=ESTILO    muestra la fecha utilizando el estilo ESTILO:&lt;br /&gt;                             full-iso, long-iso, iso, locale, +FORMATO&lt;br /&gt;                           FORMATO se interpreta como en `date'; si FORMATO&lt;br /&gt;       es FORMATO1&lt;nuevalínea&gt;FORMATO2, FORMATO1 se&lt;br /&gt;                           aplica a los ficheros no recientes y FORMATO2&lt;br /&gt;                           a los ficheros recientes; si ESTILO está precedido&lt;br /&gt;                           por `posix-', ESTILO surte efecto solamente fuera&lt;br /&gt;                           del local POSIX&lt;br /&gt;-t                         ordena por la fecha de modificación&lt;br /&gt;-T, --tabsize=COLS         establece los topes de tabulación a cada COLS&lt;br /&gt;                           en lugar de 8&lt;br /&gt;-u                         con -lt: ordena por atime y muestra atime (fecha&lt;br /&gt;                             de último acceso al fichero)&lt;br /&gt;                             con -l: muestra atime y ordena por nombre&lt;br /&gt;                             en cualquier otro caso: ordena por atime&lt;br /&gt;-U                         no ordena; muestra las entradas en el orden del&lt;br /&gt;                           directorio&lt;br /&gt;-v                         ordena por versión&lt;br /&gt;-w, --width=COLS           establece el ancho de la pantalla en lugar del&lt;br /&gt;                           valor actual&lt;br /&gt;-x                         muestra las entradas por líneas en vez de por&lt;br /&gt;                           columnas&lt;br /&gt;-X                         ordena alfabéticamente por la extensión de la&lt;br /&gt;                           entrada&lt;br /&gt;-1                         muestra un fichero por cada línea&lt;br /&gt;    --help     muestra esta ayuda y finaliza&lt;br /&gt;    --version  informa de la versión y finaliza&lt;br /&gt;&lt;br /&gt;TAMAÑO puede ser (o puede ser un entero seguido opcionalmente por) uno&lt;br /&gt;de los siguientes: kB 1.000, K 1.024, MB 1.000.000, M 1.048.576, y así&lt;br /&gt;en adelante para G, T, P, E, Z, Y.&lt;br /&gt;&lt;br /&gt;Por defecto, no se emplea color para distinguir los tipos de ficheros. Esto&lt;br /&gt;equivale a usar --color=none. Usar la opción --color sin el argumento opcional&lt;br /&gt;CUÁNDO equivale a usar --color=always. Con --color=auto, sólo se muestran&lt;br /&gt;los códigos de color si la salida estándar está conectada a un terminal (tty).&lt;br /&gt;&lt;br /&gt;Comunicar bugs a &lt;bug-coreutils@gnu.org&gt;.&lt;br /&gt;&lt;/bug-coreutils@gnu.org&gt;&lt;/nuevalínea&gt;&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;     (La ayuda puede no estar en castellano). Como puedes ver, la cantidad     de opciones es impresionante. Te hemos citado las que de momento te pueden     ser necesarias. Es obvio que no es necesario que recuerdes ninguna excepto     las dos vistas, cuando el resto puedes obtenerlas mediante     &lt;tt class="prompt"&gt;--help&lt;/tt&gt;. Recuerda que puedes hacer esto con casi cualquier     comando.    &lt;/p&gt;&lt;p&gt;     Podríamos listar los contenidos de otro directorio sin cambiarnos a él:    &lt;/p&gt;&lt;pre class="screen"&gt;&lt;tt class="prompt"&gt;$&lt;/tt&gt; &lt;b class="userinput"&gt;&lt;tt&gt;ls /usr/local/&lt;/tt&gt;&lt;/b&gt;&lt;br /&gt;&lt;tt class="prompt"&gt;bin include lib man sbin share src&lt;/tt&gt;&lt;br /&gt;  &lt;/pre&gt;&lt;p&gt;     Pasemos a ver ahora cómo podemos crear un directorio. Como pienso que      habrás intuido, no puedes crear un directorio en un lugar en el que no      tienes permiso para ello. Generalmente, un usuario normal sólo tendrá      permiso para ello en su directorio de usuario, &lt;tt class="prompt"&gt;/home/usuario&lt;/tt&gt;,     así que cámbiate ahí si no es donde estás.     Para crear directorios podemos utilizar tanto referencias relativas al      directorio actual como referencias absolutas al sistema de archivos. Para      crear directorios, basta con usar el comando &lt;b class="userinput"&gt;&lt;tt&gt;mkdir&lt;/tt&gt;&lt;/b&gt;.      Crearemos un directorio en &lt;tt class="prompt"&gt;/home/usuario&lt;/tt&gt; llamado pruebas,      y otro dentro de este llamado &lt;tt class="prompt"&gt;pruebas1&lt;/tt&gt; como ejemplo:    &lt;/p&gt;&lt;pre class="screen"&gt;&lt;tt class="prompt"&gt;$&lt;/tt&gt; &lt;b class="userinput"&gt;&lt;tt&gt;cd /home/usuario&lt;/tt&gt;&lt;/b&gt;&lt;br /&gt;  &lt;/pre&gt;&lt;p&gt;Primera forma de hacerlo:&lt;/p&gt;&lt;pre class="screen"&gt;&lt;tt class="prompt"&gt;$&lt;/tt&gt; &lt;b class="userinput"&gt;&lt;tt&gt;mkdir pruebas&lt;/tt&gt;&lt;/b&gt;&lt;br /&gt;&lt;tt class="prompt"&gt;$&lt;/tt&gt; &lt;b class="userinput"&gt;&lt;tt&gt;cd pruebas&lt;/tt&gt;&lt;/b&gt;&lt;br /&gt;&lt;tt class="prompt"&gt;$&lt;/tt&gt; &lt;b class="userinput"&gt;&lt;tt&gt;mkdir pruebas1&lt;/tt&gt;&lt;/b&gt;&lt;br /&gt;  &lt;/pre&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;b class="userinput"&gt;&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Segunda forma de hacerlo:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mkdir pruebas&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mkdir pruebas/pruebas1&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Tercera forma de hacerlo:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mkdir /home/usuario/pruebas&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mkdir /home/usuario/pruebas/pruebas1&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Creo que ya lo has entendido, ¿verdad? Puedes moverte entre esos directorios     con el comando &lt;b class="userinput"&gt;cd&lt;/b&gt; como ya explicamos antes, así     practicas un poco. Ahora vamos a mover y copiar archivos a esos directorios.     Para mover archivos y directorios usaremos el comando     &lt;b class="userinput"&gt;mv&lt;/b&gt;. Date cuenta que este comando también nos permite     renombrar un archivo. Supongamos que tenemos un archivo llamado     &lt;span class="prompt"&gt;miarchivo&lt;/span&gt; en &lt;span class="prompt"&gt;/home/usuario&lt;/span&gt;. Vamos     a renombrarlo a &lt;span class="prompt"&gt;minuevoarchivo&lt;/span&gt; (es recomendable no usar     espacios en los nombres de archivo, puedes usar guiones bajos (_) en      sustitución de los espacios; asimismo es recomendable como ya tratabamos,     no usar acentos en los nombres de archivo):    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd /home/usuario&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Primera forma de hacerlo:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mv miarchivo minuevoarchivo&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Segunda forma de hacerlo:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mv miarchivo /home/usuario/minuevoarchivo&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Tercera forma de hacerlo:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mv /home/usuario/miarchivo minuevoarchivo&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     ... y así algunas formas más, pero creo que ya lo has entendido, aquí     también podemos emplear referencias relativas al directorio actual     y referencias absolutas al sistema de archivos. Podemos renombrar     directorios también, y moverlos unos dentro de otros. Para mover un directorio     llamado &lt;span class="prompt"&gt;programas&lt;/span&gt; y llevarlo dentro de otro  llamado     &lt;span class="prompt"&gt;pruebas&lt;/span&gt;, haríamos algo como esto:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mv programas pruebas/&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     De esta forma el directorio &lt;span class="prompt"&gt;programas&lt;/span&gt; se queda dentro de     &lt;span class="prompt"&gt;pruebas&lt;/span&gt;. Como ves, el comando &lt;b class="userinput"&gt;mv&lt;/b&gt; toma     como primer argumento el fichero o directorio origen, y como segundo argumento     el destino; recuérdalo. Podríamos reestablecer el directorio     &lt;span class="prompt"&gt;programas&lt;/span&gt; al nivel anterior donde estaba:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd pruebas/&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;mv programas ../&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Como habrás podido apreciar y ya hemos dicho, el comando     &lt;b class="userinput"&gt;mv&lt;/b&gt;toma primero lo que se quiere mover y después     a dónde se quiere mover. Para dominarlo totalmente, lo mejor es que      practiques, es la única forma de comprender cómo se comporta bajo determinadas     situaciones este comando, y de que tú lo domines.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Para borrar un directorio, si este esta vacío, usaremos el comando     &lt;b class="userinput"&gt;rmdir&lt;/b&gt;. Por ejemplo vamos a borrar los directorios     &lt;span class="prompt"&gt;pruebas1&lt;/span&gt; y &lt;span class="prompt"&gt;pruebas&lt;/span&gt; que creamos anteriormente.     Si recuerdas, &lt;span class="prompt"&gt;pruebas1&lt;/span&gt; estaba dentro de     &lt;span class="prompt"&gt;pruebas&lt;/span&gt;:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;ls&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;pruebas&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rmdir pruebas&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;rmdir: `pruebas': El directorio no está vacío / Directory not empty&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;# Como ves, no podemos borrarlo porque no está vacío&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd pruebas/&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;ls&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;pruebas1&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rmdir pruebas1&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;# pruebas1 está vacío y por lo tanto se borra&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd ../&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rmdir pruebas&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;# Ahora pruebas está vacío y también se borra&lt;/span&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     (Las líneas que comienzan por # son explicaciones del manual     para que comprendas lo que pasa). Está claro que hacer todo esto     para borrar un directorio y todo lo que éste contenga no es del todo     cómodo. Unas líneas más adelante veremos cómo es posible borrar     todo un directorio con todo lo que contenga por debajo de él (siempre     que tengamos los permisos adecuados sobre todo lo que contiene y sobre     el directorio mismo).    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El comando &lt;b class="userinput"&gt;rm&lt;/b&gt; nos permite borrar uno o varios     archivos. Por ejemplo, borraremos el archivo &lt;span class="prompt"&gt;minuevoarchivo&lt;/span&gt;:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm minuevoarchivo&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Si tenemos los permisos adecuados sobre él, &lt;span class="prompt"&gt;minuevoarchivo&lt;/span&gt;     será borrado, en la mayoría de los casos sin preguntarnos, por lo cual     debemos tener bastante cuidado con lo que hacemos con los archivos de nuestro     sistema, porque una vez borrados es imposible volver a recuperarlos     (¿para que los borraríamos entonces si siguiesen estando ahí?). Al igual     que todos los comandos anteriores, &lt;b class="userinput"&gt;rm&lt;/b&gt; es muy     potente y sobre todo muy flexible. Veremos cómo es capaz de borrar un     directorio con todo lo que tenga por debajo.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Para esto se usa, principalmente, la opción &lt;b class="userinput"&gt;-r&lt;/b&gt;.     Esta opción le dice a &lt;b class="userinput"&gt;rm&lt;/b&gt; (y a algunos otros comandos)     que opere con recursividad, esto es, que se vaya adentrando nivel por nivel     debajo del directorio que le hemos indicado y que vaya borrando todo lo que     encuentre a su paso. De este modo, el directorio     &lt;span class="prompt"&gt;pruebas/&lt;/span&gt; que teníamos antes, podríamos haberlo borrado     así:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm -rf pruebas/&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     La opción &lt;b class="userinput"&gt;-r&lt;/b&gt; como hemos dicho irá borrando todo,     terminando por borrar el directorio, y la opción &lt;b class="userinput"&gt;-f&lt;/b&gt;     es para que no nos pregunte si queremos que borre o no cada subdirectorio     del que nosotros le indicamos. Recuerdo que el caracter     &lt;b class="userinput"&gt;*&lt;/b&gt; hace referencia a todos los archivos de un directorio     por lo que si quisieramos haber borrado todo lo que tuviese dentro el     directorio &lt;span class="prompt"&gt;pruebas/&lt;/span&gt; pero sin borrar éste, podríamos haber     hecho:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm -rf pruebas/*&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     La opción &lt;b class="userinput"&gt;-r&lt;/b&gt; nos permite de igual forma copiar un     directorio entero. Pogamos que queríamos copiar el directorio     &lt;span class="prompt"&gt;pruebas&lt;/span&gt; (con todo su contenido) a un nuevo directorio     llamado &lt;span class="prompt"&gt;pruebas2&lt;/span&gt; que crearemos al mismo nivel que     &lt;span class="prompt"&gt;pruebas&lt;/span&gt;:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cp -rf pruebas/ pruebas2/&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Más o menos ya tienes una idea de cómo se maneja el sistema de archivos     desde la consola. Para entender y dominar todo esto no hay más que     practicarlo. Si quieres saber cómo crear archivos, la sección del editor     &lt;b class="userinput"&gt;vim&lt;/b&gt; puede servirte, ahora vamos a comentar algunos     detalles más para referirnos a archivos en BASH.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Piensa que tenemos un directorio que se llama &lt;span class="prompt"&gt;mis libros&lt;/span&gt;.     Como puedes observar, este nombre de directorio tiene un espacio, lo cual     no es nada recomendable. La manera de "nombrarlo" desde la terminal es     la siguiente: &lt;b class="userinput"&gt;mis\ libros&lt;/b&gt;. El espacio se sustituye     por &lt;b class="userinput"&gt;\ &lt;/b&gt; (barra invertida y un espacio).    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Piensa ahora que tenemos que referirnos a un archivo que tiene cinco letras     pero que desconocemos cuál es la última (o cualquiera) de estas letras.     Por ejemplo, un archivo que se llame &lt;span class="prompt"&gt;maybe&lt;/span&gt;, nosotros     desconocemos la letra "b". Podríamos referirnos a él usando     &lt;b class="userinput"&gt;may?e&lt;/b&gt;, y la terminal lo encontraría inmediatamente.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     El asterisco &lt;b class="userinput"&gt;*&lt;/b&gt; puede referirse a todos los archivos     de un directorio si lo usamos solo. Por ejemplo, borramos todos los archivos     de un directorio:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm *&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     O bien puede referirse a archivos que contengan una cadena de caracteres o     que empiecen o terminen por una determinada cadena de caracteres. Por ejemplo     todos los archivos ocultos (que empiezan por "."):    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm .*&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Otro ejemplo, borramos todos los archivos que contengan la cadena     "so" en su nombre:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;rm *so*&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Todo esto es muy sencillo. Vamos a terminar con una función muy importante     de BASH, que es completar el nombre de archivo o directorio por nosotros.     Supongamos que queremos entrar en un directorio dentro del actual que se llama     &lt;span class="prompt"&gt;html_docs&lt;/span&gt; y que no hay ningún otro directorio que empiece     de modo igual o parecido. Escribiremos:    &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd html (presionamos el tabulador aquí)&lt;/b&gt;&lt;br /&gt;&lt;span class="prompt"&gt;# (entonces la línea se nos queda:)&lt;/span&gt;&lt;br /&gt;&lt;span class="prompt"&gt;$&lt;/span&gt; &lt;b class="userinput"&gt;cd html_docs/&lt;/b&gt;&lt;br /&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Si pulsamos INTRO, nos habremos cambiado al directorio     &lt;span class="prompt"&gt;html_docs/&lt;/span&gt;. Mira lo que acabamos de descubrir. Si estamos     escribiendo un nombre de archivo o de directorio y presionamos el tabulador,     si ese nombre existe, BASH lo rellenará por nosotros. Cómodo, ¿no? De esta     forma no tendremos que escribirlo entero. Ahora supongamos que además     de &lt;span class="prompt"&gt;html_docs&lt;/span&gt; hay otro directorio al mismo nivel que     se llama &lt;span class="prompt"&gt;html_includes&lt;/span&gt;. Si escribimos ahora      &lt;b class="userinput"&gt;cd html&lt;/b&gt; y presionamos el tabulador, no habrá salida     porque no sabrá cuál de ellos elegir. La solución es pulsar el tabulador     dos veces y nos mostrará las opciones que coinciden con lo que llevamos     escrito, con lo cual podresmo seguir escribiendo hasta que hayamos eliminado     una de las opcioens y pulsemos el tabulador de nuevo solo una vez,     entonces sí que nos rellenará el nombre de archivo o directorio. Ten en     cuenta que esto sirve con casi cualquier comando y es indiferente para     referencias relativas al directorio actual o absolutas del sistema de archivos     , es muy útil y permite ahorrar mucho tiempo y equivocaciones escribiendo     nombres de ficheros o directorios en la línea de comandos. Sin duda, una     importantísima característica para los que no nos sobra el tiempo :-)    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Ya hemos dado un repasito a algunas cosas básicas de la terminal BASH.     Por lo menos ya no estás perdido, practica todo esto un poco, y también     léelo de vez en cuando, porque conforme vayas practicando, mejor comprenderás     algunas cosas que ahora no eres capaz de comprender o asimilar sin haber     visto otras primero. El dominio de la terminal BASH en un sistema Linux     es imprescindible, porque (afortunadamente) no hay GUIs (interfaces de usuario     gráficas) para todo lo que podemos hacer en nuestro sistema. Verás como     aunque estás trabajando en modo gráfico dentro de unas horas o unos días,     tendrás abierta casi siempre una ventan de la terminal en modo gráfico para     hacer todas esas cosas que sólo es posible (y más eficiente) hacerlas     desde una terminal o que son más flexibles desde la línea de comandos.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-3289515924114659238?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/3289515924114659238/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=3289515924114659238' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/3289515924114659238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/3289515924114659238'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-3-terminal-o-shell.html' title='Capitulo 3: Terminal o Shell'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-8590899119220485076</id><published>2007-11-06T12:07:00.000-08:00</published><updated>2007-11-06T12:51:45.273-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 2: Guía inicial para la instalación de una distribución</title><content type='html'>&lt;div  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;II     Guia inicial para la instalación de una distribución&lt;br /&gt;Antes de instalar&lt;br /&gt;      Hardware&lt;br /&gt;      Quedarse con lo que tenemos en la PC&lt;br /&gt;      Escoger la Distribución&lt;br /&gt;Guias generales para la instalación&lt;br /&gt;      Redimencionamiento de particiones&lt;br /&gt;      Otros consejos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect1" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h2 class="title" style="clear: both;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Antes de Instalar&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Veamos qué necesitamos para instalar una distribución de Linux en la PC.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-1-1"&gt;&lt;/a&gt;Hardware&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Como veremos más adelante en este manual, y se descubrirá cuando se tenga                         experiencia en el uso y administración de los sistemas Linux, es posible instalar                         Linux desde en un equipo "antiguo" hasta en los grandes servidores con varios                         microprocesadores y varios discos duros. Para instalar en un ordenador poco potente,                         necesitaríamos algunos conocimientos para personalizar a fondo la instalación                         que suponemos que no se tienen ahora. Así                         que vamos a buscar un equipo en el que una instalación normal funcione a una                         velocidad aceptable. Esto, lógicamente, va a depender de qué fecha sea la distribución                         que vayamos a instalar. Cuanto más reciente sea, necesitaremos un equipo más potente.                         &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Las distribuciones actuales pueden     correr                         aceptablemente en un procesador a 450 MHz y 128 MB de memoria RAM. La memoria RAM                         va a ser un factor que incremente el rendimiento del sistema Linux en un gran     porcentaje,                         mucho más de lo que pudiera parecernos en un principio.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;En cuanto al espacio en disco, estamos en las mismas, dependerá de lo que     vayamos                         a instalar, pero como empezarmos por una instalación estándar (no tocaremos mucho en                         un principio), pondremos un mínimo de 3GB de disco libres. Si tienes más espacio,    puedes                         dejar 5 ó 6 GB los cuales te serán suficientes si tomas la inteligente decisión de     seguir adelante con Linux :-)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-1-2"&gt;&lt;/a&gt;Quedase con lo que tenemos en la PC&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si somos usuarios de Windows,     es posible que tengamos un poco de miedo a lo desconocido y a pensar "¿podré seguir haciendo esto    con Linux?" "¿Tardaré mucho en adaptarme?" y cosas por el estilo. Tanto es así,     que querríamos conservar nuestra instalación de Windows al tiempo que instalamos     Linux. Como  se hablo en el Capítulo 1, eso es totalmente posible. Lo más fácil     es dejar espacio libre en nuestra partición Windows, y                         con el programa 'Partition Magic', redimensionar nuestra partición de Windows de     tal modo que dejemos espacio libre en disco suficiente como para que en la     instalación llenemos ese espacio con las particiones Linux. Claro,     &lt;span class="emphasis"&gt;&lt;em&gt;'Partition Magic'&lt;/em&gt;&lt;/span&gt; es un programa comercial, y un                         poco caro, así que si no se puede contar con él, todavía tenemos una esperanza más.    Esta es &lt;span class="emphasis"&gt;&lt;em&gt;realmente tediosa&lt;/em&gt;&lt;/span&gt; y consiste en usar un programa     llamado &lt;span class="emphasis"&gt;&lt;em&gt;fips&lt;/em&gt;&lt;/span&gt; que viene con algunas distribuciones de Linux,     cuyo uso detallamos en las secciones siguientes de guía inicial a la instalación.     No obstante, la instalación de Mandrake también nos permite redimensionar nuestra     partición Windows, incluye en la instalación un interfaz para gestionar las     particiones de disco similar al de Partition Magic para Windows, así que si vamos     a instalar Mandrake puede que estemos salvados.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;No es muy común, pero raras veces se podrían perder los datos de nuestro     disco duro. Evitemos males mayores, que no nos cuesta nada, y saquemos una copia     de los documentos importantes o del trabajo que tenemos en nuestro sistema actual.    El resto de software podríamos reponerlo desde los discos de instalación.     Repetimos que esto no es nada frecuente pero &lt;span class="emphasis"&gt;&lt;em&gt;podría                         ocurrir&lt;/em&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-1-3"&gt;&lt;/a&gt;Escoger la distribución&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si, como suponemos puesto que estás leyendo esto, va a ser tu primera     instalación de Linux, tendrás que elegir una distribución que no sea demasiado     avanzada y te permita instalar sin grandes dificultades. Hoy esto no es dificíl,     puesto que la mayoría de distros se instalan de manera muy                         sencilla. Podríamos elegir entre una de las siguientes:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;                         &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="emphasis"&gt;&lt;em&gt;Mandrake Linux&lt;/em&gt;&lt;/span&gt;: Esta distribución de       Linux es de las  más amigables si nos estamos acercando a Linux       la primera vez, calificada por muchos                                         (y creemos que acertadamente) como la más sencilla para iniciarnos.       La única "pega" (que no lo es realmente) de esta distribución       es que instalará un montón de cosas que puede que no necesitemos,       pero es el precio de una instalación sencilla. Es por                                         esto por lo que deberíamos tener una máquina potente para instalar       esta distribución                                         sin que se nos vaya arrastrando. Ofrece un escritorio muy agradable       y completo, además de varios asistentes sencillos para cambiar la       configuración del hardware.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;En la pagina de Mandrake: (&lt;a href="http://www.mandrake.com/"&gt;http://www.mandrake.com/&lt;/a&gt; ) podemos descargar su distro. Deberemos buscar las imágenes ISO (archivos       .iso) y descargarlas.                                         En párrafos siguientes comentamos más acerca de las descargas. En       la web oficial de Mandrake también puedes informarte de las       características de esta distro.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="emphasis"&gt;&lt;em&gt;RedHat/Fedora Linux&lt;/em&gt;&lt;/span&gt;:       Fedora es la distribución &lt;span class="emphasis"&gt;&lt;em&gt;libre&lt;/em&gt;&lt;/span&gt; (gratuita) de       la compañía RedHat, y RedHat Linux es su distribución comercial.      Ambas son similares, sobre todo de cara al usuario medio.       Podrían ser la segunda       distribución más sencilla                                         con la que tratar y por lo tanto igual de indicada para la       instalación. Es algo más  complicada que Mandrake para empezar,       aunque la diferencia no es excesivamente notable.                                         La página oficial de RedHat ( &lt;a href="http://www.redhat.com/"&gt;http://www.redhat.com/&lt;/a&gt; ) &lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;nos ofrece información sobre la distribución comercial y la web de Fedora (&lt;a href="http://fedoraproject.org/"&gt;http://fedoraproject.org/&lt;/a&gt;) nos informa y nos permite descargar la distribución gratuíta.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;                         &lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si hemos decidido descargar la distribución, nos aseguraremos de     que tenemos una buena conexión, porque con un ancho de banda de bajada de     27 KBytes/s vamos a tardar unas 6 horas por CD. Si tenemos en cuenta que tanto     Mandrake como RedHat son 3 CDs.... ¡¡18 horas!! ¡¡y eso con una buena     conexión!!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si tenemos la buena conexión, veamos qué es lo que tenemos que descargar.     Buscaremos, los archivos &lt;span class="emphasis"&gt;&lt;em&gt;ISO (.iso)&lt;/em&gt;&lt;/span&gt;, cada uno de ellos es un     CD de los que luego grabremos. Así que sí, necesitamos                         tener una grabadora de CDs, unos cuantos CDs vírgenes y un programa de grabación     funcionando en nuestro sistema operativo actual para grabar las imágenes de CDs ISO     a los CDs vírgenes. En fin, como fuimos cocineros antes que frailes, en Nero para     Windows es &lt;span class="emphasis"&gt;&lt;em&gt;Archivo -&gt; Grabar Imagen&lt;/em&gt;&lt;/span&gt;, esto es, no basta con     grabarlo como si fuera un fichero normal, cada programa tiene su manera de     grabar estas imágenes, así que buscaremos la del nuestro y las grabaremos&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si estas en España, algo rápido y actualizado es     &lt;a href="ftp://ftp.rediris.es/"&gt;&lt;span class="emphasis"&gt;&lt;em&gt;ftp.rediris.es&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;. Nos identificaremos como     &lt;span class="emphasis"&gt;&lt;em&gt;anonymous&lt;/em&gt;&lt;/span&gt; dando cualquier password, y nos moveremos por sus     directorios hasta encontrar los archivos .iso de los discos de la distribución     que queremos. Entonces los descargaremos con algún programa que nos permita     continuar la descarga en caso de problemas. Cuando las tengamos descargadas las    grabaremos.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Si no puedes descargar la distro desde Internet, puedes comprarla en caja. Las    ventajas de comprarla son realmente muchas, y es que estarás seguro de que los discos    no tendrán problemas de haberse descargado, tendrás más software que con las    &lt;span class="emphasis"&gt;&lt;em&gt;download versions&lt;/em&gt;&lt;/span&gt;, soporte por mail si tienes dudas en la    instalación por parte de la compañía que crea la distro, y quizás lo mejor de todo,    un montón de manuales impresos con los que guiarte y aprender a usar Linux paso a     paso y tener una referencia impresa si la necesitas posteriormente. Si juntamos todo,    el precio no es excesivo, ni mucho menos (compara con: Windows + Office + Photoshop    + Soft de desarrollo + ..., sería muchísimo dinero). Precios aproximados; para    Mandrake de 60 a 70 Euros (PowerPack) y para RedHat de 40 a 50 Euros (Personal     Edition). Si vas a comprar la distro, otra que podrías evaluar sería SuSE Linux,    que no ofrece la posibilidad de descargar los CDs de Internet,    con un precio de 40 a 50 Euros (Personal). La decisión es tuya, estás ante tres    buenas distribuciones que te servirán para empezar con Linux y para tu trabajo diario    con multitud de herramientas de configuración y un escritorio agradable. Cualquiera    de ellas sería una buena elección.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;En el manual también vamos a tratar la distribución Debian GNU/Linux,    es una distribución de gran calidad y que ofrece un gran rendimiento, con un    sistema de paquetes para instalar software muy avanzado. No obstante, esta    distribución puede ser demasiado difícil para iniciarnos en Linux, así que puedes    empezar con una de las anteriores y posteriormente experimentar con alguna    distribución avanzada como comentaremos después: Debian, Slackware o Gentoo.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Guias generales para la instalación&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Instalar una distribución de Linux es realmente fácil en nuestros días. Los   instaladores han avanzado mucho y hoy GNU/Linux se asemeja más bien a un Mac o un Windows   que a un super-UNIX de alto nivel en lo que a la instalación se refiere (no ha perdido   potencial por tener una instalación sencilla). Sería una pérdida de tiempo describir   sección por sección la instalación de cada una de las distribuciones que recomendamos,   así que lo que vamos a hacer es dar unos consejos generales que te resolverán las minimas   dudas que puedan surgirte instalando. Puedes buscar los manuales de instalación en los   discos o bien en las webs de las empresas distribuidoras si crees necesitar ayuda extra.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-2-1"&gt;&lt;/a&gt;Redimensionado de particiones Windows con fips&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Como ya comentamos, si queremos conservar nuestra partición Windows    al instalar Linux, hay más bien poco que podamos hacer si no usamos 'Partition    Magic' para hacer más pequeña nuestra partición Windows.    Si vamos a instalar Mandrake Linux no tendremos problemas porque    como hemos comentado antes, incluye un soft que nos permitirá hacer más pequeña    nuestra partición Windows sin perder sus datos, para despues en el espacio libre    crear las particiones Linux.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="emphasis"&gt;&lt;em&gt;fips&lt;/em&gt;&lt;/span&gt;    es una alternativa que pasamos a describir, aunque puede ser algo tediosa.    Esta herramienta, aunque puede que la incluyan algunas distros más, es original    de RedHat Linux.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Sugerencia:&lt;/span&gt; Recuerda hacer una copia de seguridad de tu trabajo antes de proceder      con este método.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Este método está lejos de ser &lt;span class="emphasis"&gt;&lt;em&gt;eminentemente práctico&lt;/em&gt;&lt;/span&gt;,    además vamos a tener que depender de lo que Windows quiera hacer con nuestras    particiones.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Procederemos siguiendo estos pasos:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Sugerencia:&lt;/span&gt; Es posible que esto no funcione en algunas versiones de Windows&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;    &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;En DOS (o una ventana de DOS) teclearemos: &lt;b class="userinput"&gt;chkdsk      &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Ejecutamos el scandisk en Windows (el corto será suficiente)      &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Creamos un disquete de arranque con el programa FIPS incluido      generalmente en el primer CD de RedHat Linux, escribiendo en DOS:      &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;C:\&lt;/span&gt; &lt;b class="userinput"&gt;format a:/s&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;A continuación le copiamos los archivos Restorbb.exe, Fips.exe      y Errors.txt, localizados generalmente en el directorio      &lt;span class="prompt"&gt;dosutils/fips20&lt;/span&gt; del CD 1 de RedHat Linux.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Desactivamos la memoria virtual de Windows.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Cerramos todos los programas posibles y defragmentamos el       disco duro para mover todos sus datos al principio.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Reiniciamos el sistema y ponemos el disco de arranque. Si no      aparece &lt;span class="prompt"&gt;C:\&lt;/span&gt; escribimos algo como &lt;b class="userinput"&gt;      dir C:\&lt;/b&gt; y luego nos vamos a &lt;span class="prompt"&gt;A:\&lt;/span&gt;      donde escribiremos:&lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="prompt"&gt;A:\&lt;/span&gt; &lt;b class="userinput"&gt;fips&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Con esto arranquermos &lt;span class="prompt"&gt;fips&lt;/span&gt; por fin. Si no      nos deja, probaremos a escribirlo desde &lt;span class="prompt"&gt;C:\&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Con &lt;span class="prompt"&gt;fips&lt;/span&gt; ejecutándose, primero elegimos el      disco duro que queremos usar.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Elegimos el número de partición que queremos dividir y le      decimos que sí queremos comprobar la partición&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Le decimos que sí queremos hacer copia de seguridad del sector      de inicio de nuestro disco duro, sin sacar el disquete le decimos que      sí con la tecla Y. Se nos ofrecerá el espacio disponible para crear      una nueva partición. Si es insuficiente o menor del que está en       realidad significa que hay archivos ocultos que no han sido movidos      al principio del disco duro con la defragmentación, o sea que       tendremos que buscarlos y eliminarlos (y después defragmentar de      nuevo, ya dijimos que esto no es cosa de coser y cantar...).&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;       Decidimos el tamaño nuevo de las particiones con las flechas       izquierda y derecha, y cuando tengamos el que buscamos,       presionaremos &lt;span class="emphasis"&gt;&lt;em&gt;intro&lt;/em&gt;&lt;/span&gt;. A continuación       podemos confirmar o cancelar la creación de particiones,       continuaremos con la tecla C. Y a continuación con la tecla       Y. Es todo; cuando finalice la tarea, el programa se cerrará       y reiniciaremos sin quitar el disco. Luego escribiremos      &lt;/span&gt;&lt;/p&gt;&lt;pre class="screen"&gt;&lt;span style="font-size:100%;"&gt;&lt;b class="userinput"&gt;fips -t&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;       para comprobar que todo está correcto. Si no fuera así,       FIPS te ayudará a dejarlo todo como estaba. Bueno, ahora       quitamos el disco y reiniciamos, observando como Windows       arranca normalmente.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;    &lt;/p&gt;&lt;/div&gt;&lt;div class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap02-2-2"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Otros consejos&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Es posible que durante algún momento de la instalación te sientas perdido,     así que aquí van una serie de consejos que te pueden ayudar.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Veamos algo sobre los sistemas de ficheros, las particiones y el cargador     de inicio. Mandrake, por ejemplo, nos porporcionará la opción de     redimensionar nuestras particiones Windows para crear espacio libre y añadir     posteriormente las particiones para Linux. Para esto debemos coger la     instalación personalizada (a veces llamada avanzada). Podemos ver más     detalles en la documentación online de la distro en &lt;a href="http://www.mandrake.com/"&gt;http://www.mandrake.com/&lt;/a&gt;. En el caso de RedHat     deberíamos elegir la herramienta &lt;span class="emphasis"&gt;&lt;em&gt;DiskDruid&lt;/em&gt;&lt;/span&gt; para crear     las particiones; pero con ella ya deberemos tener espacio libre para crear     las particiones Linux, puesto que esta herramienta no nos permite     redimiensionar las particiones. En cuanto a los sistemas de ficheros      (la manera de escribir los datos en el disco), elegiremos, si están     disponibles, EXT3 o ReiserFS. Estos sistemas de ficheros no necesitan     una comprobación si el PC se apaga inadecuadamente (también llamados de      &lt;span class="emphasis"&gt;&lt;em&gt;journalising&lt;/em&gt;&lt;/span&gt;). Crearemos tres particiones,     una de mayor tamaño (al menos 3 GB) donde instalaremos el sistema, otra     de tamaño medio dependiendo del disco que dispongamos (muy mínimamente 1 GB)     donde se guardarán los documentos y configuraciones de los usuarios, y otra     de unos 200 MB para SWAP (intercambio). Si fuera posible, la partición SWAP     se creará en otro disco distinto a la partición principal. Cuando las tengamos     creadas, las herramientas de particionado de los instaladores suelen tener     un botón llamado &lt;span class="emphasis"&gt;&lt;em&gt;Modificar&lt;/em&gt;&lt;/span&gt; o algo así. Ahí podremos     escoger un tipo de sistema de ficheros, y elegir el      &lt;span class="emphasis"&gt;&lt;em&gt;punto de montaje&lt;/em&gt;&lt;/span&gt;     . Para la partición principal escogeremos &lt;span class="prompt"&gt;/&lt;/span&gt; como punto de     montaje, para la de tamaño medio (la de los usuarios), elegiremos     el punto de montaje &lt;span class="prompt"&gt;/home&lt;/span&gt;, y la de SWAP le diremos que es     del tipo SWAP y no se le asigna ningún punto de montaje. En lo que respecta     al cargador de inicio, elegiremos GRUB si está disponible, y le diremos que     queremos instalarlo en el primero disco duro de nuestro sistema (al principio     de él), esto es, por ejemplo &lt;span class="prompt"&gt;/dev/hda&lt;/span&gt;. Crearemos también     un disco de inicio, lo etiquetaremos y lo guardaremos para arrancar Linux     en caso de problemas después.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Otras preguntas en las que podrías dudar serían, por ejemplo, si quieres     ejecutar las X al inicio. Para empezar con Linux, responde      &lt;span class="emphasis"&gt;&lt;em&gt;sí&lt;/em&gt;&lt;/span&gt;     . El servidor X, es el servidor gráfico de Linux. KDE y GNOME son entornos     de escritorio; instala, al menos, uno de ellos. Mozilla y      Galeon son navegadores     y Evolution y KMail son clientes de e-mail. Los instaladores nos dejarán     probar resoluciones y profundidad de colores distintas para las X.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Deberías elegir una instalación personalizada, porque no es nada complicado     aunque así suene. No instales servidores que no necesites (e igualmente     con los servicios al inicio), puesto que harán que el sistema vaya más     lento.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Ahora las distribuciones son fáciles de instalar, así que con estos consejos     no deberías tener ningún problema para instalar tu sistema Linux.    &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;     Las primeras veces que arranques Linux, antes de seguir leyendo, ¡investiga!,     es una forma de aprender a ver cómo funciona el escritorio que vayas a usar.    &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-8590899119220485076?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/8590899119220485076/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=8590899119220485076' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/8590899119220485076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/8590899119220485076'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-2-gua-inicial-para-la.html' title='Capitulo 2: Guía inicial para la instalación de una distribución'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2363094673869321025.post-6151560745092664652</id><published>2007-11-05T17:51:00.000-08:00</published><updated>2007-11-05T18:13:20.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNU/Linux'/><title type='text'>Capitulo 1: Introducción a GNU/Linux</title><content type='html'>&lt;h2 class="title"  style="clear: both; text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;1.- Introducción&lt;/span&gt;&lt;/h2&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Introduccion a GNU/Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Conceptos básicos GNU/Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Arranque de Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Sistema de archivos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Nombre de archivos en Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Software adicional para GNU/Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Usuarios y permisos de Archivos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Arranque de Linux II&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Nombramiento de dispositivos y particiones&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Introducción a GNU/Linux&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;                                 Para empezar, GNU/Linux es un sistema operativo. Esto significa que es un      conjunto de instrucciones que nos va a permitir "hacer cosas", cualquier tipo      de tarea, con nuestro ordenador. Sus características más notables son:                                  &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="itemizedlist"&gt;&lt;ul type="opencircle"&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                         Proviene de UNIX, otro sistema operativo, y es casi un                                                         derivado de él.                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                         Es parte del proyecto GNU, lo que significa, entre         otras muchas cosas, que es libre y que muchas veces         no estás obligado a pagar por él. Puedes usarlo de         modo gratuíto y además puedes modificar su código                                                         fuente, para adaptarlo a tus propias necesidades o         para contribuir en su continuo desarrollo, en el que         toman parte programadores de todo el mundo (tú puedes         ser uno de ellos). Antes de seguir leyendo y         aprendiendo sobre él, conviene que                                                         visites &lt;a href="http://www.gnu.org/"&gt;http://www.gnu.org/&lt;/a&gt; en la que se dan algunos         detalles sobre qué es el proyecto, qué puedes hacer y         qué no puedes hacer con                                                         el código fuente además de algunos otros detalles                                                         importantes.                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                         Es potente, seguro y estable. Debido a ello resulta         un sistema operativo ideal para servidores ya que cumple        muy bien esta función aunque como sistema operativo                                                         de oficina, de escritorio o de publicación también es                                                          excelente.                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                         Existen infinidad de programas para cualquier tipo de         tarea que se quiera desarrollar y aunque muchos         de ellos son gratuitos (no por ello de menos calidad         que los  comerciales, pues muchas veces los superan),         también existen aplicaciones comerciales.                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                         Es un sistema multiusuario real y multitarea y funciona         de manera muy productiva en redes. Desde sus raíces UNIX        siempre lo ha sido. En definitiva Linux pone todo         lo bueno de los grandes UNIX y algunas cosas más al         alcance de todo el mundo. ¿Lo vas a dejar ahí? ¿Lo vas a        desaprovechar? Un consejo, yo no lo haría.                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;                         &lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;                                 Hablemos un poco de la historia de GNU/Linux. Comencemos presentando a quien                                  podemos considerar como el creador de Linux. Su nombre es Linus Trovalds. Puede     decirse que Linus Trovalds creó este sistema operativo en 1991. Escribió un KERNEL     (parte principal de un sistema operativo) y lo dejó a disposición  de sus amigos     y luego de toda la Internet para que cualquiera pudiese mejorarlo. Siempre se ha     seguido la regla POSIX para que el sistema operativo sea compatible con otros     UNIX y de esta manera tener mayor software a su disposición, y que el que                                 se cree para Linux valga también en otros UNIX. Algún tiempo más tarde, para      adaptar el sistema operativo y facilitar la instalación, nacieron las      compañías distribuidoras de Linux. Entre ellas destacan RedHat, Debian,      Caldera, SuSE, Mandrake...                                 Estas distribuidoras pueden cobrar por ofrecer sus productos en CD o en      algún otro soporte, pero deben poner su código a disposición del público,      si han utilizado software GNU (bajo licencia GPL, que dice entre otras cosas      que si usas código GPL en tu programa, tu programa se convierte      automáticamente en GPL). Actualmente Linus Torvalds sigue coordinando el     trabajo de los programadores de todo el mundo en el núcleo del sistema     operativo para mejorarlo y adaptarlo al nuevo hardware.                         &lt;/span&gt;&lt;/p&gt;&lt;p  style="text-align: justify;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;                                 ¿Cabe la posibilidad de preguntarse cuál es la mejor distribución de Linux?                                 GNU/Linux tiene muchas distribuciones, y por lo general, no existe una      distribución mejor que las demás, cada una de ellas tiene sus puntos a      favor en determinados aspectos. Así, Debian es una distribución que no es      realmente comercial en sí como lo son la mayoría                                 de las otras. El desarrollo de Debian es muy parecido al voluntariado que      existe en el  desarrollo del kernel de Linux. Para los que se aproximan por      primera vez a Linux, es cierto que Mandrake, si se tiene una máquina con      recursos suficientes, ofrece una instalación y configuración sencillas y un entorno      gráfico personalizado ideal para no perderse al principio.                                 Claro que siempre depende de tí y si tienes la oportunidad de tratar con varias      distribuciones, trabaja con la que te sientas más cómodo.                         &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify; font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;                                 ¿Puede haber problemas? Dependiendo del hardware que tengas en tu ordenador,     porque Linux no soporta algunos dispositivos como Winmódems (módems      diseñados para funcionar sólo con M$ Windows, en su mayoría internos),      algunas tarjetas de sonido, etc.                         &lt;/span&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;                                 ¿Puedo tener Windows y Linux en la misma máquina? ¡Claro! Como veremos más      adelante la clave está en particionar el disco duro, para que Windows use      una parte y Linux use otra, de manera que no interfieran. También como      veremos después, el cargador de arranque                                 de Linux te permitirá elegir qué sistema operativo iniciar.&lt;/span&gt;&lt;/p&gt;&lt;p face="arial" style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 class="title"&gt;&lt;span&gt;&lt;span style="font-size:100%;"&gt;Conceptos básicos de GNU/Linux&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="font-family: arial; text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;                                 En esta sección Vamos a tratar algunas cosas que tenemos que tener      claras antes de instalar y comenzar a utilizar Linux.      No tienes que aprenderlas de memoria (para eso está este manual),      simplemente lee esto con atención y estarás                                 en disposición de continuar aprendiendo sobre Linux.                         &lt;/span&gt;&lt;/p&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Arranque de Linux&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         Veamos qué es lo que pasa cuando nuestra máquina arranca y tenemos       que elegir un  sistema operativo. Cuando la BIOS termina su chequeo,      empieza a buscar dónde hay software para ser ejecutado. Si los CDROMs      no son de arranque, pasa al primer disco duro por defecto.      En el principio del disco duro o MBR (acuérdate, lo vas a ir más de dos      veces con Linux) o en una partición queda instalado con Linux un cargador       de arranque.       Los dos más usados son LILO (LInux LOader) y GRUB. Nada más                                         arrancar se ejecuta este cargador cuya misión permitir al usuario elegir       sistema operativo de los que tenemos en nuestro ordenador quiere utilizar.       Al instalarse, LILO (o GRUB) habrán sido configurados para poder arrancar                                         cualquier sistema operativo que tengamos instalado, reconoce la mayoría      de los existentes.       Seleccionamos nuestra versión de Linux y el cargador                                         da paso al Kernel de Linux que empieza a hacer sus chequeos y       a montar (hacer utilizable) el sistema de archivos.                                 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-2"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Sistema de archivos&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         El sistema de archivos es más o menos "la forma de escribir los datos      en el disco duro". El sistema de archivos nativo de Linux es el EXT2.      Ahora proliferan otros sistemas de archivos con journalising (si se      arranca sin haber cerrado el sistema, no necesitan hacer un chequeo                                         sino que recuperan automáticamente su último estado), los más       conocidos son EXT3, ReiserFS y XFS.                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         La estructura de directorios que sigue Linux es parecida a la de       cualquier UNIX. No tenemos una "unidad" para cada unidad física de       disco o partición como en Windows, sino que todos los                                         discos duros o de red se montan bajo un sistema de directorios en       árbol, y algunos de esos directorios enlazan con estas unidades       físicas de disco. MUY IMPORTANTE: Las barras en Linux                                         al igual que en cualquier UNIX son inclinadas hacia la derecha,       como se puede ver más abajo (ese es el motivo de que en internet sean       inclinadas hacia la derecha ya que nació bajo UNIX y en Linux                                         podremos aprovechar todas sus ventajas). Expliquemos esto más a       fondo, incluyendo los directorios principales:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;                              &lt;/span&gt;&lt;/p&gt;&lt;p&gt;                                         &lt;/p&gt;&lt;div class="table"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="id2464080"&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Tabla 1.1. Estructura de directorios en Linux&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="text-align: left; margin-left: 0px; margin-right: 0px;" summary="Estructura de directorios en Linux" border="1"&gt;&lt;colgroup&gt;&lt;col&gt;&lt;col&gt;&lt;/colgroup&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Directorio&lt;/span&gt;&lt;/th&gt;&lt;th&gt;&lt;span style="font-size:100%;"&gt;Descripción&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Es la raíz del sistema de           directorios. Aquí se monta la           partición principal Linux EXT.          &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/etc&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Contiene los archivos de           configuración de la mayoría de los           programas.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/home&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Contiene los archivos           personales de los usuarios.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/bin&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Contiene comandos básicos y           muchos programas.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/dev&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Contiene archivos simbólicos           que representan partes del hardware,           tales como discos duros, memoria...          &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/mnt&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Contiene subdirectorios donde          se montan (se enlaza con) otras           particiones de disco duro, CDROMs,           etc.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/tmp&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Ficheros temporales o de           recursos de programas.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/usr&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Programas y librerías           instalados con la           distribución&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/usr/local&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Programas y librerías           instalados por el           administrador&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/sbin&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Comandos           administrativos&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/lib&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Librerías varias y módulos           ("trozos") del kernel&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/var&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Datos varios como archivos           de log (registro de actividad) de           programas, bases de datos, contenidos          del servidor web, copias de           seguridad...&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;/proc&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:100%;"&gt;Información temporal sobre           los procesos del sistema           (explicaremos esto más en profundidad          posteriormente).&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;                                 &lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-3"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Nombres de archivos en Linux&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         Los nombres de archivos en Linux (como en todos los UNIX) distinguen       mayúsculas de minúsculas, esto es, son "case sensitive". Los archivos      README, readme, REadme y rEadme por ejemplo son archivos distintos y      por lo tanto al ser nombres distintos pueden estar en el mismo                                         directorio.                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         En Linux los archivos no tienen por qué tener una extensión. La       suelen tener a modo orientativo,                                         pero no es en absoluto necesario. Linux sabe qué contiene cada       archivo independientemente de cuál sea su extensión. Por comodidad,      podremos llamar a todos nuestros archivos de texto con la                                         extensión .texto, o a todos nuestros documentos con la extensión       .documento, de esta manera, podremos luego agruparlos más fácilmente.                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         Los ficheros y directorios ocultos en Linux comienzan su nombre por       un punto (.)                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         Los nombres de archivos o directorios pueden ser muy largos, de más       de 200 caracteres, lo cual nos da bastante flexibilidad para asociar      el nombre de un archivo a lo que contiene. No obstante,                                         hay ciertos caracteres que nunca se deberían utilizar a la hora de       nombrar un archivo. Uno de ellos es el espacio, nunca llamaremos a       un fichero con un nombre que contenga un espacio. Tampoco son recomendados                                         otros caracteres raros como signos de puntuación (a excepción del punto),      acentos o la ñ. En algunos casos Linux ni siquiera nos permitirá usarlos.      Los recomendables son las letras A-Z, a-z, los números (0-9),                                         el punto, el guión (-) y el guión bajo (_) para nombrar un archivo.       Los acentos y la ñ tampoco se recomiendan.                                 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-4"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Software adicional para GNU/Linux&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         Primero, hacer notar que LINUX NO ES WINDOWS. El software de       Windows no funcionará en Linux,                                         hay proyectos de emulación al respecto, que no recomendamos.                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                         El software para Linux lo podemos encontrar de dos formas: en un       paquete binario o en un paquete                                         con su código fuente.                                 &lt;/span&gt;&lt;/p&gt;&lt;div class="sect3" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-4-1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;Paquetes binarios&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                 Existen varios tipos de paquetes binarios. Todos tienen una        característica en común, y es que contienen código de        máquina, no código fuente, por eso cada tipo de procesador                                                 necesita su propia versión de cada paquete. Al haber varias        distribuciones de Linux existen varios tipos de paquetes        binarios, habiendo varias distribuciones que        comparten sistema de paquetes. Los más comunes son:                                         &lt;/span&gt;&lt;/p&gt;&lt;p&gt;                                                  &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="opencircle"&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                                         Los paquetes RPM: Los usan las           distribuciones RedHat, Caldera,                                                                         Madrake, SuSE y TurboLinux entre           otras. Su uso está muy extendido                                                                         y es posible instalar este tipo de           paquetes mediante la aplicación                                                                         rpm. El nombre de los paquetes rpm           es del tipo         nombredelpaquete_version_plataforma.rpm                                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                                         Los paquetes Debian (deb): Los usa la          distribución Debian y sus                                                                         derivadas. Es un sistema de paquetes          muy potente y que facilita                                                                         en gran medida la actualización del          sistema, además de resolver                                                                         las dependencias (qué paquetes           necesitan a qué otros) y satisfacerlas                                                                         instalando todos los paquetes           necesarios automáticamente. La                                                                         aplicaciones que gestionan este           sistema de paquetes se llaman apt                                                                         y dpkg. Los paquetes Debian se suelen          nombrar de la forma                                                                 nombredelpaquete_version_plataforma.deb                                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li style="list-style-type: circle;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                                         Los paquetes tgz de Slackware los          usa la distribución del mismo nombre,          y siguen los principios de los dos          anteriores, son paquetes binarios          aunque tienen una estructura          distinta.                                                                 &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;                                          &lt;/p&gt;&lt;/div&gt;&lt;div class="sect3" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-4-2"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;Paquetes de código fuente&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                 Estos paquetes contienen los archivos que salen del                                                 ordenador del programador o programadores, lo que quiere        decir que ya hay que aportar algo de nuestra parte para        utilizar los programas que contienen. El proceso de        instalación de este tipo de paquetes implica también una                                                 COMPILACIÓN, concepto que vas a escuchar más de tres veces. Una        compilación nos permite que el programa que vamos a instalar       se optimice totalmente para el tipo                                                 de componentes que tenemos en nuestro ordenador y el tipo        de versión de GNU/Linux.                                                 Este programa que hemos compilado correrá más rápido que        si nos hubiéramos limitado a instalar un paquete binario        normal. La compilación de un programa requiere de                                                 unos COMPILADORES, que son unos programas que junto con        unas LIBRERíAS de lenguajes de programación, consiguen        transformar el código fuente en lenguaje de máquina.                                                 Trataremos más adelante cómo instalar software.                                         &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                 Son también de amplio uso los Source RPM, que son paquetes        RPM pero que en vez de ser binarios, llevan código fuente.        Mediante la instalación de este tipo de                                                 paquetes, lo que hacemos es crear un nuevo paquete        optimizado (compilar un nuevo paquete) para nuestra máquina.       Después instalamos este último.                                         &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="sect3" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-4-3"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4 class="title"&gt;&lt;span style="font-size:100%;"&gt;Meta-Paquetes&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                                 Conocemos por meta-paquete a aquellos paquetes en los cuales        no hay código fuente, o binarios, sino reglas sobre CÓMO        construir e instalar dicho paquete. Estos paquetes los usan        distribuciones como Gentoo Linux       (&lt;a href="http://www.gentoo.org/" target="_top"&gt;http://www.gentoo.org&lt;/a&gt;),        Linux From Scratch     (&lt;a href="http://www.linuxfromscratch.com/" target="_top"&gt;http://www.linuxfromscratch.com&lt;/a&gt;)        y algunos otros sistemas operativos como FreeBSD       (&lt;a href="http://www.freebsd.org/" target="_top"&gt;http://www.freebsd.org&lt;/a&gt;).                                                 La ventaja que tienen estos paquetes es que son muy sencillos        de generar, los binarios quedan optimizados para la máquina       que los va a ejecutar, pero como todo, esto tiene una        contrapartida....                                                 las distribuciones que los usan pueden ser más complicadas        de manejar y se necesitan conexiones                                                 muy rápidas y procesadores potentes si no se quiere estar        mucho tiempo compilando los paquetes.                                         &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-5"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Usuarios y los permisos de archivos&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Linux es un sistema operativo multiusuario. Cada usuario      generalmente tiene su carpeta de usuario en /home/usuario. Por defecto      sólo puede escribir, modificar y borrar archivos dentro                                 de esta carpeta. Ningún otro usuario (excepto root) puede acceder a los      archivos que hay en este directorio, ni si quiera puede ver cuáles son.      Este usuario -por defecto- puede leer en el resto                                 de las carpetas que hay en el sistema de archivos excepto en la de root y      las de otros usuarios.                                 Todos los programas recuerdan las preferencias de cada usuario, e      incluso un usuario puede instalar un programa sin que los otros usuarios      tengan acceso a él (vale sí, root si tendrá, lo sé, lo sabemos :-); aunque      instalando los usuarios tienen muchas limitaciones como veremos después.                                 Un usuario no puede causar por este motivo daño al sistema ni cambiar su     configuración de ninguna forma. ¿Y quién es ese tal root? En cualquier      sistema UNIX, root es "el que todo lo puede". Es la excepción que confirma      la regla, es el superusuario todopoderoso de estos sistemas. Cuando hagas                                 login como root en una máquina GNU/Linux, siente el poder bajo tus teclas.     Puedes hacer todo lo que se te pase por la cabeza. Pero ojo, tienes      poder para lo bueno y para lo malo. Tienes acceso a todo el sistema, pero     una equivocación... sería fatal. Puedes cargarte el sistema Linux y los      preciados datos y configuraciones que tengas en él. Por esto, para tareas     normales SIEMPRE entraremos al sistema como un usuario normal por los      riesgos que se corren trabajando como root. Además NUNCA usaremos                                 Internet como root. Incluso algunos programas no permiten ser ejecutados      por root por motivos de seguridad. Como ya habrás adivinado, la      contraseña de root se la guarda uno en la cabeza y se asegura                                 de que no se le olvida, y por supuesto se preocupa uno de que nadie pueda      acceder a ella en ningún fichero o de que no la ven cuando la escribimos.      Si se cree que la han podido adivinar o están cerca, se cambia. Cuanto más     larga, tediosa y sin sentido sea esta contraseña, más seguro estará      nuestro sistema.                                 Recuerda que tu máquina Linux es tan segura como segura sea tu      contraseña de root.                                 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                 ¿Qué son los permisos? Todos y cada uno de los archivos y directorios del      árbol jerárquico que monta nuestro sistema Linux tienen permisos. Estos      permisos dicen, para cada usuario del sistema, si puede ejecutarlo, si      puede ver su contenido o si puede borrarlo o modificarlo. Del mismo modo,      cada elemento del sistema de archivos tiene un dueño. Por defecto, este      dueño del elemento (tanto directorio como archivo) tiene acceso total a él y      puede realizar todas las acciones posibles permitidas. El resto de usuarios     pueden leer y ejecutar este elemento por defecto aunque todo esto se puede      cambiar para cada uno de los elementos.                                 Todos los archivos de las carpetas de sistema y configuración suelen tener      a root como propietario. Los de la carpeta personal de cada usuario tienen     a ese usuario como propietario, pero el resto de usuarios normales no tienen      ningún permiso sobre estos elementos, y lo mismo ocurre con la carpeta de root                                 (que se encuentra en la raíz, en /root).                                 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="text-align: justify;font-family:arial;" class="sect2" lang="es"&gt;&lt;div class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-6"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Aarranque de Linux II&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;                                 Cuando el kernel ya ha montado el sistema de archivos, comienzan a      inicializarse algunos procesos llamados "daemons" (demonios). Cada uno de      estos demonios se inicia cuando el sistema arranca y durante                                 su vida va acontrolar un proceso determinado, y va a permanecer en segundo      plano (transparente para el usuario), no vamos a notar que se está ejecutando     a menos que pidamos información a este proceso, lo detengamos o lo      reiniciemos. Algunos de estos demonios son, por ejemplo, el servidor web, el servidor de     correo, el cortafuegos, el servidor de nombres DNS... y muchos otros que      gestionan varias tareas, en su mayoría servicios de servidor de red para      servir de host a otras máquinas. Cuando todos esos demonios se                                 hayan cargado, aparecerá ante nosotros una línea de texto de login      (autentificación en un sistema) o bien una ventana de login gráfico.      Vamos a empezar entrando como usuario normal primero.                                 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="sect2"  lang="es" style="font-family:arial;"&gt;&lt;div style="text-align: justify;" class="titlepage"&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="chap01-3-7"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 class="title"&gt;&lt;span style="font-size:100%;"&gt;Nombramiento de dispositivos y particiones&lt;/span&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;Debemos saber de qué manera nombra Linux a los discos duros que tenemos      conectados a nuestra máquina y sobre todo a sus particiones. Todos los      discos duros (IDE) comienzan su nombre como &lt;b class="userinput"&gt;hd&lt;/b&gt;. Un      ejemplo de nombre completo de disco duro sería &lt;span class="prompt"&gt;hda&lt;/span&gt; y de la      primera partición de ese disco duro sería &lt;span class="prompt"&gt;hda1&lt;/span&gt;.                                 &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;                                 La 'a' significa que ese disco duro está conecatdo al IDE1 como maestro.      Si fuera esclavo tendría la 'b', y si estuviera conectado al IDE2 como      maestro, la 'c', y si estuviera al IDE2 como esclavo, la 'd'.                                 &lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;                                 El número 1 indica que es la primera partición (primaria y no lógica)      del disco duro en cuestión. La segunda geométricamente hablando (primaria)      sería la 2 y así sucesivamente. La primera partición lógica                                 de un disco duro se nombra con el número 5, independientemente de si      pertenece a la primaria 1, 2, 3 ó 4.                                 La segunda se nombraría con un 6 y así sucesivamente.                                 &lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;                                 Con saber lo que significa hda1 o hdd2 o hdc5 es suficiente de momento.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;                                 &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2363094673869321025-6151560745092664652?l=linuxlandia-tutoriales.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linuxlandia-tutoriales.blogspot.com/feeds/6151560745092664652/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2363094673869321025&amp;postID=6151560745092664652' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/6151560745092664652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2363094673869321025/posts/default/6151560745092664652'/><link rel='alternate' type='text/html' href='http://linuxlandia-tutoriales.blogspot.com/2007/11/capitulo-1-introduccin-gnulinux_05.html' title='Capitulo 1: Introducción a GNU/Linux'/><author><name>Linuxlandia</name><uri>http://www.blogger.com/profile/04519825368958672903</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
