Haz una donación ahora. Goal amount for this year: 650 EUR, Received: 222 EUR (34%)
¡Ayúdanos a mantener el foro!
Haz una donación para pagar el servidor.

Resultados 1 al 11 de 11

Tema: Guia de referencia básica de linux

  • Compártelo
  • Herramientas
  • Visualizar
  1. #1

    Guia de referencia básica de linux

    Buenas:

    He visto que el el subforo hay un hilo explicando que es gnu/linux, animando a usarlo y animando al 'paso' al software libre, pero echo en falta una referencia básica de estructura y comandos para ayudar a manejarse un poco por el sistema operativo, mas alla del entorno gráfico, que a veces lo encuentro un poco limitado y dependiente de aplicaciones de terceros.
    Soy consciente de que, para casi todo existen aplicaciones graficas, pero creo que no está de mas un poco de conocimiento de los comandos y las opciones que nos ofrece linux y son independientes de la distribución que usemos y del gestor de ventanas.

    Os animo a que publiqueis aquello que conozcais, por básico que sea, para que aquel que busque algun comando o alguna forma de configurar algo, sepa como hacerlo sin el entorno gráfico. Yo intentaré mantenerlo indexado para que sea una guia util y rapida.

    LISTA DE TEMAS



    Tema Original de Dubliner.
    Última edición por seolpo; 30-01-11 a las 18:05

  2. #2
    ESTRUCTURA DE DISCOS EN LINUX

    Pues para empezar, explicaros un poco la estructura de discos y directorios ya que ésta es un poco diferente a la estructura que tiene Microsoft en sus sistemas operativos, desde MSDOS.

    Como sabeis, en los S.O. de Microsoft, cada disco duro o partición con la que contamos en el sistema, tiene asignada una letra de unidad a la que nos dirigiremos para ver el contenido del disco o partición en cuestión. De tal forma, la partición de sistema, por lo general, suele ser C:. La unidad de CD o DVD suele ser D:. Si tenemos un pendrive USB u otras particiones, pues tendrán otra letra de unidad hasta llegar a la Z:.
    En Linux, eso ya no es asi. En linux, todos los discos, particiones o cualquier sistema de ficheros que tengamos conectado, se verán dentro de la misma 'unidad'.
    Disponemos de un volumen root o raiz (Volumen /) bajo el que cuelga todo lo que tengamos. Durante la instalación de linux, en el particionamiento del disco, podemos elegir si asignamos todo el contenido del disco al volumen root o asignamos una parte del disco al contenido de /home o a otro directorio.
    De esta forma, cuando accedieramos al directorio /home, estaríamos accediendo a otra particion o a otro disco.
    Igualmente, si en otra partición tenemos un windows XP, podemos montarlo en nuestro sistema linux y que nos apareciera en un directorio, por ejemplo, /XP. Asi, si accedemos a /XP, estaríamos viendo el contenido del disco duro donde tengamos la partición de Windows.
    Lo mismo pasa con las unidades de CD/DVD, los pendrives, discos duros externos, etc... Aparecen montados dentro de un directorio que cuelga del volumen root.

    En cuanto a las particiones que se pueden hacer en cualquier sistema Linux, existen varios tipos:
    1.- Particion Swap. Es una partición de intercambio. En windows existe un fichero de intercambio configurable en cuanto a tamaño y ubicación. En linux es una partición obligatoria (Todos los equipos deben de tenerla) y con un tamaño minimo que sea el doble de tu memoria RAM.
    2.- Particiones de Linux. Son las otras particiones que tengas en equipo, ya sean la particion root, home o cualquier otro disco que hayas conectado aparte. Existen varios sistemas de ficheros diferentes que se pueden usar para dar formato a las particiones de linux, y son las siguientes:
    a.- XFS. Se dió a conocer en 2001 por la empresa SGi y está recomendado para el uso de ficheros grandes. Si se usan ficheros pequeños, es recomendable usar otro tipo de sistemas de fichero.
    b.- JFS (Journaled File System). Es uno de los primeros sistemas de fichero con 'journaling', lo cual, da seguridad al sistema de ficheros. No es muy usado, pero existe.
    c.- Ext3. Existe una versión anterior a este, Ext2, con pocas diferencias. Solo que Ext3, dicen que es un sistema de fichero journaling ya que tiene espacio reservado para ello. Se recomienda que si vas a pasar de ext2 a otro sistema journaling, pases primero por ext3 para no perder datos. Lo que no posee este sistema de ficheros son caracteristicas transaccionales, como tienen otros sistemas, para optimizar velocidad en la manipulación de los datos y el archivado.
    d.- ReiserFS. Es el primero en estar estable para linux y es optimo para trabajar con ficheros pequeños, al contrario que XFS. Actualmente, es el que mas se usa, junto con ext3 y no da ningun problema. El problema es que el desarrollador esta actualmente en la carcel, no se sabe hasta cuando, con lo que el desarrollo está parado.

    Con esta información, nos podemos hacer una idea de como se organizan los discos en linux y sus diferentes sistemas de ficheros.

    Un saludo.

  3. #3
    ESTRUCTURA Y PERMISOS EN FICHEROS

    Como sabeis, en Windows, cada fichero tiene su correspondiente extensión, la cual sirve para que el S.O. identifique que contiene el fichero y decida si es o no es ejecutable y con que programa se ejecuta.
    En linux, aunque puede haber extensiones para identificar el fichero (igual que en windows, las imagenes, ficheros de sonido, etc... tienen su extensión), el hecho de que un fichero sea o no ejecutable, no se decide por la extensión, sino por los permisos.
    Los permisos en linux se asignan por grupos y existen 3:
    1.- Permisos para el propietario del fichero.
    2.- Permisos para el grupo al que pertenece el fichero.
    3.- Permisos para el resto de usuarios.

    Los permisos tambien son 3:
    1.- Permisos de lectura ('r')
    2.- Permisos de escritura ('w')
    3.- Permisos de ejecución ('x')

    Como ejemplo, os pongo la información que aparecería si vieramos los datos de un fichero:
    Código:
    -rwxrwxrwx 1 root root 570 Jun  3 08:25 backup
    Como veis, existe un fichero llamado backup, que pertenece al usuario root del grupo root. Al principio de la linea tenemos los permisos. En este caso, tiene permisos de lectura/escritura/ejecución para todo el mundo.
    Si en lugar de eso pusiera '-rxw------', el fichero seria accesible para escribir, leer y ejecutar solo por el usuario root y no sería accesible de ninguna manera para ningun otro usuario, aunque tambien tenga permisos de root.

    El comando para asignar permisos es chmod y su uso es sencillo.
    Basicamente, habría que escribir, siempre como superusuario, el siguiente comando:
    Código:
    chmod [permisos] [Fichero]
    Los permisos se asignan por grupos en 3 octetos. Para cada grupo, asignaremos los permisos con un numero de la siguiente lista:

    0 = sin permisos.
    1 = ejecución.
    2 = escritura.
    3 = escritura y ejecución.
    4 = lectura.
    5 = lectura y ejecución.
    6 = lectura y escritura.
    7 = lectura, escritura y ejecución.

    Para asignar los permisos de lectura, escritura y ejecución a todo el mundo, habria que escribir:
    Código:
    chmod 777 backup
    Para asignar permisos totales al propietario y de lectura y ejecución al resto de usuarios, habría que poner:
    Código:
    chmod 755 backup
    Para asignar permisos totales solamente al propietario e impedir el acceso al resto de usuarios sería:
    Código:
    chmod 700 backup
    Hay que recordar que, en linux, se distinguen las mayusculas y las minusculas. De tal forma, no es lo mismo poner 'chmod' que 'Chmod'. Si introducimos el segundo comando, nos devolverá un error de que no se reconoce el comando.

    Aparte del chmod, para cambiar los permisos de un fichero, tambien se puede cambiar el propietario del fichero y el grupo al que pertenece el fichero.
    Los comandos que hacen eso son chown (Change owner) y chgrp (Change Group).

    En el ejemplo que puse anteriormente:
    Código:
    -rwxrwxrwx 1 root root 570 Jun  3 08:25 backup
    Si ejecutamos:
    Código:
    chown Admin backup
    se cambiaría el propietario del fichero de root a Admin. La nueva info del fichero quedaría asi:
    Código:
    -rwxrwxrwx 1 Admin root 570 Jun  3 08:25 backup
    En cambio, si ejecutamos:
    Código:
    chgrp users backup
    y miramos la info del fichero, quedaría asi:
    Código:
    -rwxrwxrwx 1 Admin users 570 Jun  3 08:25 backup
    Los comandos chgrp y chown admiten, como modificador el -R (Mayuscula) que cambiaría de grupo y de propietario recursivamente todos los ficheros y directorios del que introdujesemos. Es decir, si ejecutamos:
    Código:
    chgrp -R users /kk
    se cambiaría el grupo de todos los directorios y ficheros del directorio kk que cuelga del root.

    Tambien se puede usar para cambiar el propietario de todos los ficheros y directorios de un dispositivo entero o de un directorio:

    Código:
    chown pinchodetortilla /dev/sdb1 -R (para el dispositivo entero)
    o
    chown usuario /home/carpeta -R (para la carpeta)
    Por supuesto, se puede usar en estos comandos el caracter comodin (*) para especificar todos los ficheros del directorio. También hay que dejar claro que, por motivos de seguridad, estos comandos solo se pueden ejecutar siendo superusuario o habiendo iniciado como root.

    Un saludo.

    P.D. Gracias a pinchodetortilla que me está ayudando a hacer mas clara la informacion y añadiendo cosas que se me pasan.


    Cita Iniciado por pinchodetortilla
    Buena info Dubliner, nunca está de más recordar todo el tema del chmod, que siempre que lo necesito acabo tirando de google por que nunca me acuerdo de como va

    A modo de puntualización, desrecomendar el uso del sistema de ficheros ReiserFS ya que su creador y developer, está en prisión por el asesinato de su mujer desde hace un par de años y no tiene pinta que vaya a salir pronto. Pasaros a ext3, que está en continuo desarrollo y los informáticos que la llevan, en la calle

    Si os gusta el morbo y quereis leer sobre Hans y el caso, os dejo dos links.

    Noticia en Linuxquestions

    Entrevista en la carcel con Hans

  4. #4
    El kernel (O nucleo) de Linux

    La definición del nucleo de Linux es complicada y ya está todo bien explicado en la web. Aparte de eso, al final acabaría parafraseando la información ya publicada, asi que os pego una buena definición:

    El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

    Las funciones más importantes del mismo, aunque no las únicas, son:

    * Administración de la memoria para todos los programas y procesos en ejecución.
    * Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
    * Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

    Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

    *

    Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.

    Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.
    * Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

    Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

    *

    Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC

    AA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
    BB: Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
    CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.
    *

    Unos ejemplos nos ayudaran a entenderlo mejor:

    ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4 (BB=4 par), primera versión de la serie 2.4 (CC=0)
    ej2: versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido errores de programación presentes en la version 2.4.0 (CC=1)
    ej3: versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

    Con la serie 2.6 del núcleo, el sistema de numeración asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.

    * Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.

    AA: Indica la serie/versión principal del núcleo.
    BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
    CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
    DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

    Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir núcleos estables a sus ausuarios y estos nucleos se basan en el núcleo ("vanilla") distribuido por Linux Torvalds y el equipo de programadores del núcleo.
    Fuente.

    Pues dado que el kernel es el nucleo sobre el que gira el resto del sistema operativo, algunos drivers o aplicaciones son dependientes de la versión del kernel y son solamente compatibles con algunas versiones.
    ¿Como se sabe la versión del kernel que estamos usando? Muy facil. Para eso existe el siguiente comando:

    Código:
    uname -a
    Lo cual nos devuelve algo similar a esto:

    Código:
    Linux nombreequipo 2.6.16.46-0.12-bigsmp #1 SMP Thu May 17 14:00:09 UTC 2007 i686 i686 i386 GNU/Linux
    Como vemos, nos muestra la información de sistema, en la que podemos ver, entre otras cosas, que el equipo usa el kernel 2.6.16.46-0.12-bigsmp.
    Con esa información, podremos bajarnos el driver que sea compatible con el kernel en cuestión.

    Un saludo.

  5. #5
    El Superusuario

    Como sabeis, los que hayais sido usuario de windows, desde el NT en adelante, cuando creas un usuario puedes darle permisos de administrador local, con lo que ese usuario puede hacer y deshacer en el sistema a su gusto. Se puede incluso, ya que el usuario tiene permisos para todo, editar el registro de windows, borrar ficheros importantes de windows y todo lo que le venga en gana dejando el sistema inutilizable. También eso es la causa por la que un troyano o un gusano puede cargarse windows, ya que el usuario con el que entras, habitualmente sin contraseña, tiene permisos para hacer todo.

    En Linux eso no es asi. Se dan de alta usuarios y, dependiendo del grupo al que pertenezca, tendrá unos permisos u otros, lo que nunca podrá hacer un usuario es instalar aplicaciones, configurar el sistema y modificar ficheros y carpetas importantes de sistema. Para hacer eso existe el Superusuario.
    Ese usuario, que lo normal es que se llame root, es el mas importante del sistema operativo. Y digo que es el mas importante porque sin la password de root no podremos instalar nada. No podremos cambiar configuraciones. No se pueden montar sistemas de archivos nuevos. Vamos, que tendríamos un equipo que podríamos usar para navegar y usar las aplicaciones que ya estén instaladas. De ahi la importancia de saber y conservar la password de root.
    A la vez, hay que asignarle una contraseña que no sea facil de deducir, como 'dios', '1234', 'root', etc... ya que cualquiera que 'se cuele' en tu pc, va a intentar hacer acceder como root usando un diccionario de contraseñas mas comunes. Es importante poner una contraseña segura, con letras, numeros y algun que otro simbolo.

    Una vez que has iniciado sesión con tu usuario normal, si quieres hacer alguna operación que requiera privilegios de root, tienes dos formas de hacerlo.
    En primero lugar, podemos iniciar una sesión de consola con el usuario root escribiendo el comando 'su'. Este comando, inicia una sesión como superusuario, tras pedir su password, logicamente, y cualquier comando que se ejecute en ese momento, hasta teclear 'exit', será con permisos de root.
    Es recomendable usar el argumento '-' como modificador de dicho comando. Es decir, 'su -', ya que ese modificador hace que se ejecute cualquier script que hubiera en el inicio de ese usuario que puede ser importante. Normalmente no pasa nada si no lo pones y escribes 'su' a secas, pero es recomendable.

    La otra forma es escribiendo 'sudo [comando]'. En este caso, el comando que escribas despues de la palabra 'sudo', se ejecutará como root. El resto de comandos no. Por ejemplo:
    Código:
    sudo telinit 5
    Con esa linea, ejecutarías el comando 'telinit 5' (Que ya explicaré para que sirve) como superusuario. Si lo ejecutaría sin escribir antes 'sudo', devolvería un precioso error de que no se encuentra el comando.

    Cabe decir que en el entorno grafico no hace falta esto, ya que cuando intentar ejecutar una aplicación de configuración que requiera permisos superiores, automáticamente (O eso he visto siempre en KDE) pide la password de root.

    Un saludo.

  6. #6
    Niveles de ejecución.

    Soy consciente de que me estoy metiendo en un terreno complicado explicando este tema y que aqui hay muchas cosas 'peligrosas' para un sistema unix/linux. Cuando hablo de peligroso, lo pongo entre comillas ya que en unix / linux, un tema de mala configuración es mas reversible y recuperable que un fallo de mala configuración del registro de windows, tras lo cual, quizas haya que reinstalar o hacer mil cosas para restaurarlo al estado aproximado en el que estaba previamente. En fin, vamos alla y que sea lo que Dios quiera.

    Los niveles de ejecución en unix y en linux son los diferentes modos de operación en los que puede funcionar el sistema operativo. Basicamente, el nivel de ejecución 0 significa que el equipo está apagado y el nivel 6 indica que el equipo se está reiniciando.
    Entre medias, hay 5 niveles de ejecución, de los cuales, solo se usan 4 (o 3 en algunas distribuciones. Segun he leido en algun sitio, se puede usar los niveles de ejecución 7 y 8, aunque no están documentados y no se para que sirven. Seguiré investigando este tema e informaré si me entero de algo.

    Los niveles de ejecución son los siguientes:

    • 0. Apagado
    • 1. Modo de usuario único (Monousuario): No se permite cambiar de usuario. Solo se puede iniciar como root, sin contraseña. Se usa para hacer pruebas o solucionar problemas.
    • 2. Multiusuario sin soporte de red.
    • 3. Multiusuario con soporte de red.
    • 4. Sin usar.
    • 5. Multiusuario con soporte de red y entorno gráfico.
    • 6. Reiniciar.


    En los niveles 2 y 3, no existe entorno grafico. Linux entra directamente a modo de consola y hay que iniciar el entorno gráfico manualmente.
    En cuanto al nivel 2, en algunos sitios dicen que no está usado en algunas distribuciones, como Red Hat. No lo he comprobado y, simplemente lo comento. No obstante, no es muy habitual usar ese nivel de ejecución, pero bueno...

    Lo dicho, lo normal es que, al acabar de instalar linux en un equipo, salvo error u omisión, este inicie automáticamente en el nivel de ejecución 5. La forma de comprobar eso es con los siguientes comandos:
    Código:
    Who -r  (Si estás usuario)
    o
    runlevel (Si estás como root)
    Los niveles de ejecución están definidos en el fichero /etc/inittab.
    Para cambiar el nivel de ejecución por defecto y que el equipo inicie en otro nivel de ejecución hay que buscar la linea similar a la siguiente:

    Código:
    id:5:initdefault:
    Evidentemente, en esa linea está definido que el inicio por defecto sea en el nivel 5. Si por cualquier cosa quisierais iniciar sin entorno gráfico, tendrías que modificar esa linea y dejarla asi:

    Código:
    id:3:initdefault:
    OJO: LA MODIFICACIÓN ERRONEA DE ESTE FICHERO PUEDE PROVOCAR QUE EL EQUIPO NO ARRANQUE Y HABRÍA QUE INICIAR CON UN DISCO DE RECUPERACIÓN PARA REPARARLO.

    Durante el inicio de linux, se ejecutan unos servicios que están definidos de la siguiente manera:
    Código:
    /etc/rc.d/boot.d : Es el script donde figuran los servicios que arrancan cada vez que se inicia el sistema o se cambia de nivel de ejecución, sea cual sea este.
    /etc/rd.d/rc.x (donde x es el nivel de ejecución): Es el script donde figuran los servicios que arrancarán cuando se inicie en el nivel de ejecución en cuestión.
    Todos los enlaces que cargan los ficheros y que ejecutan los scripts mencionados están en la carpeta /etc/init.d, /etc/init.d/rc.x aunque para modificar eso, es mejor usar alguna herramienta gráfica. Es mas fiable y menos susceptible a fallos. No obstante, no está de mas saber donde está por si acaso alguna vez nos falla el entorno gráfico.

    Por ultimo, decir que se puede cambiar de nivel de ejecución sin necesidad de modificar el /etc/inittab y reiniciar el pc. Ejecutando el comando init x o telinit x (Donde x es el nivel de ejecución al que quieres ir), cambiaras automáticamente. Eso si, obviamente, debes tener permisos de root para hacer el cambio.

    Un saludo.

  7. #7
    Pipes y redirecciones

    Bueno, llegamos al capitulo en el que se habla de unos incomprendidos. Si, digo incomprendidos porque son un poco coñazo y parece que no sirven para nada, pero los que usamos consola habitualmente y estamos acostumbrados a ellos, vemos que son muy utiles y nos facilitan la vida.

    Intentaré ser claro y no aburrir mucho.

    Pipes o tuberias:
    Lo que conseguimos con ellas es redirigir la salida de un comando a otro. Poniendo un simil domestico, sería como si sacamos de la nevera y lo metemos al microhondas.
    El simbolo que indica la tubería es '|' (AltGr + 1) y un ejemplo es el siguiente:
    Código:
    ps -e |grep firefox
    En ese ejemplo, la salida del comando ps se convierte en la entrada del comando grep. Ya explicaré para que sirven esos dos comandos. El resultado final, será el resultado del comando grep para los datos que entregó el comando ps -e.

    Redirecciones:
    Normalmente, el resultado de los comandos, se envía a la salida estandar que es la pantalla (Lejos queda la epoca en la que la salida estandar era una impresora).
    En determinadas ocasiones, puede que nos interese que la salida del fichero, el resultado, en lugar de enviarlo a la pantalla, se envíe a un fichero para guardarlo a modo de log.
    Eso se consigue con las redirecciones. Y los caracteres para indicar que se va a aplicar una redirección son '<' y '>'.
    En el caso del caracter '<', indicaría que al comando que precede al simbolo, se le pasaría como entrada el fichero y si se introduce el caracter '>', la salida del comando se envía al fichero. Para no liarnos, que a veces no se explicarme bien, un ejemplo:

    Código:
    tar -cvf < listadeficheros.txt (envía el contenido de listadeficheros.txt al comando tar)
    y 
    ls -a > listadeficheros.txt (Envía el resultado del comando ls -a al fichero listadeficheros.txt)
    En el caso de la segunda redirección, hay dos modos de operación. En ocasiones nos puede interesar ir añadiendo entradas al mismo fichero y en otras ocasiones nos puede interesar, actualizar el fichero en cada ocasión borrando el contenido anterior. Para eso, habría que hacerlo de la siguiente forma:

    Código:
    ls -a > lista.txt (Escribe los datos de salida de ls -a al fichero sobreescribiendo los datos si existen y creando el fichero si no existe)
    
    ls -a >> lista.txt (Escribe los datos de salida de ls -a al fichero a continuación de la ultima entrada)
    También se pueden anidar redirecciones. Es decir, podemos pasar datos a un comando desde un fichero y enviar el resultado a otro. Eso se consigue asi:

    Código:
    tar -cvf < listadeficheros.txt >> resultado.txt
    Con eso, ejecutaremos el tar sobre los ficheros contenidos en listadeficheros.txt y mandaremos el resultado al fichero resultado.txt.
    En el caso de este tipo de anidamientos, hay que tener en cuenta que las redirecciones se ejecutan de izquiera a derecha.

    Un saludo.

  8. #8
    Manejo de ficheros

    Pues bien, este es el capitulo que explica los comandos que, a mi entender, son los mas usados y los que mas frecuentemente usaremos.
    Por lo general, copiar archivos, mover o renombar, borrar archivos y esas cosas se hacen en entorno grafico, pero, como he dicho, no está de mas saber los comandos.
    • Copiar ficheros (cp)
      El uso general de este comando es cp [Opcion] Origen Destino

      Como opciones, hay muchas, pero las mas habituales son:
      • -R o -r : Recursivo. Copia todos los directorios y subdirectorios que haya dentro del directorio que indiquemos en origen.
      • -u : Copia solamente cuando el fichero de origen es mas nuevo que el de origen o no existe en destino. Es decir, actualiza.
      • -v : Modo verbose. Es decir, que muestra en pantalla el progreso de la copia. Si no se pone ese modificador, el comando empieza y acaba sin mostrar información de lo que ha hecho. Si quieres ver lo que ha hecho el comando, debes poner -v.

      Ejemplos:
      Código:
      cp /home/dubliner/ficherocualquiera.txt /kk/ (Copia el archivo ficherocualquiera.txt al directorio /kk)
      cp -r /home/dubliner/* /kk (Copia todos los ficheros y directorios de /home/dubliner al directorio /kk)
      cp -u /home/dubliner/* /kk (Actualiza los ficheros y directorios de /home/dubliner al directorio /kk cuando estos sean mas nuevos)
      cp -v /home/dubliner/* /kk (Actualiza los ficheros y directorios de /home/dubliner al directorio /kk y muestra el progreso en pantalla)
    • Mover ficheros o renombrar (mv)
      El uso general del comando es mv [Opcion] Origen Destino

      Igual que anteriormente, hay muchos comandos, pero pongo los mas normales:
      • -u : Mueve solamente cuando el fichero de origen es mas nuevo que el de origen o no existe en destino.
      • -v : Modo verbose. Es decir, que muestra en pantalla el progreso de la copia. Si no se pone ese modificador, el comando empieza y acaba sin mostrar información de lo que ha hecho. Si quieres ver lo que ha hecho el comando, debes poner -v.


      Ejemplos:
      Código:
      mv /home/dubliner/fichero.txt /kk/kkgorda.txt (Mueve el fichero.txt al directorio /kk y lo cambia de nombre a kkgorda.txt)
      mv -u /home/dubliner/* /kk (Mueve solamente los ficheros que se hayan actualizado en el destino)
      mv -v /home/dubliner/* /kk (Mueve todos los ficheros de /home/dubliner a /kk y nos muestra el progreso en la pantalla)
    • Borrar ficheros (rm)
      El uso general del comando es mv [Opcion] fichero

      Las opciones mas comunes son:

      • -r o -R : Elimina todos los archivos y directorios que estén dentro de la carpeta indicada.
      • -v : Modo verbose. Es decir, que muestra en pantalla el progreso de la copia. Si no se pone ese modificador, el comando empieza y acaba sin mostrar información de lo que ha hecho. Si quieres ver lo que ha hecho el comando, debes poner -v.
      • -f : Forzado. Ignora todo. No pregunta, simplemente borra sin preguntar nada.


      Ejemplos:
      Código:
       rm /home/dubliner/kk.txt (Borra el fichero kk.txt)
      rm -r /home/dubliner (Borra el contenido de la carpeta /home/dubliner)
      rm -f /home/dubliner (Borra el contenido de la carpeta /home/dubliner sin preguntar)
      rm -v /home/dubliner (Borra el contenido de la carpeta mostrando el progreso)
    • Borrar directorios (rmdir). No borra archivos y da error si el directorio no está vacio.
      El uso general del comando es rmdir [Opcion] Directorio

      Las opciones mas comunes son:

      • -p : Elimina tambien los directorios padres.
      • -v : Modo verbose. Es decir, que muestra en pantalla el progreso de la copia. Si no se pone ese modificador, el comando empieza y acaba sin mostrar información de lo que ha hecho. Si quieres ver lo que ha hecho el comando, debes poner -v.


      Ejemplos:
      Código:
      rmdir /home/dubliner/kk (Borra el directorio kk)
      rmdir -p /a/b/c (Borra los directorios c, b y a)
      rmdir -v /home/dubliner/kk/* (Borra todos los directorios de kk y muestra el resultado en pantalla)
    • Listar directorios (ls)
      El uso general del comando es ls [Opcion] fichero

      Las opciones mas habituales son:

      • -a : Muestra todo el contenido, incluidos los directorios ocultos.
      • -l : Muestra la información extendida de los ficheros, incluido el tamaño en bytes y los permisos.
      • -h : Muestra los tamaños en formato legible por humanos en combinación con -l (En la documentacion aparece como human legible, no es que me haya inventado yo la definicion)
      • -R :Muestra el contenido de forma recursiva, es decir, muestra el contenido del directorio y todos sus subdirectorios.
      • -x : Muestra el contenido en lineas, en lugar de en columnas.

      Ejemplos:
      Código:
      ls -a /etc (Muestra todos los ficheros del directorio etc, incluso ocultos)
      ls -l /etc (Muestra los datos tal que asi: 
      -rw-r--r--   1 root root       623 Jun 16  2006 xinetd.conf)
      ls -lh /etc (Muestra los datos asi:
      -rw-r--r--   1 root root    6.3K Jan 15  2007 xpdfrc)
      ls -R /etc (Muestra todo el contenido de /etc y todos los subdirectorios)
      ls -x /etc (Muestra el contenido en lineas con una sola columna)


    Un saludo.

  9. #9
    Comandos relativos a la memoria y el disco.

    Bueno, ahora un tema sencillito. Como mostrar información de uso de memoria y discos duros.

    Hay varios comandos para ello.

    • df (Disk Freee)
      Muestra información del tamaño de las particiones junto con el porcentaje de uso y espacio libre. La información de tamaños se muestra en Kilobytes, salvo que se especifique la opción -h que mostraría la información en forma humanamente legible, en Gb o en Mb.
    • free (Uso de la memoria y los buffers)
      Muestra la información de la memoria usada, junto con la ocupación de intercambio y los buffers. Igual que con el comando df, la información aparece en KB, salvo que especifiquemos la opción -h.
      Hay que explicar un poco la gestión de la memoria para que los recien iniciados en linux no piensen que este S.O. gestiona mal la memoria.
      Cuando arranca el sistema operativo, el kernel se reserva la memoria que necesita para su propio uso y para el de los drivers.
      Sin embargo, si ves la información de uso de la memoria, ves que casi toda, salvo unos poquitos MB, están ocupados. ¿En que se ha ocupado tanta memoria? Basicamente en buffers. Linux se reserva casi toda la memoria libre para ir dejando información de las aplicaciones que abrimos, por si acaso hay que volver a abrirlas no tener que cargar de nuevo lo que sea necesario y asi agilizar el proceso.
      Pero esta gestión de memoria es dinámica. Si de repente el sistema operativo necesitase mas memoria, borra los buffers y libera lo que necesita para uso de las aplicaciones o de lo que quiera hacer uso de la memoria.
      Hay que tener en cuenta ese asunto para no llevarse a engaños pensando que Linux consume la memoria como una sanguijuela.
      Para hacernos una idea de la carga de nuestra memoria, podemos ver lo que tenemos de uso en swap o intercambio, que es la memoria que empieza a llenarse cuando la RAM está hasta arriba. Si la ocupación de swap es pequeña, entonces el sistema va con holgura.


    Un saludo.

  10. #10
    Enlaces simbólicos

    Un enlace simbólico es algo similar a lo que sería un enlace o un link en windows.
    Se puede crear un enlace a un fichero ejecutable y que sea accesible desde otro sitio. Cualquier cambio realizado usando el enlace simbólico se reflejaría en el ejecutable original, pero si borras el enlace, no se borra el original.
    En eso se diferencia con un enlace duro (Hard link), en los cuales, si borras el enlace, tambien borras el original.

    Esto se hace debido a que en linux, cuando ejecutas un comando, el sistema lo busca en las carpetas definidas en el path. Aunque estes situado en el directorio donde está el ejecutable, si este directorio no está en el path, no lo encontrará.
    Para solucionar eso, si estas en la carpeta donde se encuentra el ejecutable, debes escribir la ruta. sabiendo que el directorio . es el directorio actual, si escribes './ejecutable' estarás ejecutando el fichero ubicado en el directorio donde te encuentras.
    Para no tener que hacer eso, puedes crear un enlace simbolico en un directorio de sistema, en /usr/sbin, por ejemplo, y ya podríamos ejecutarlo sin necesidad de conocer la ruta.

    Para crear un enlace simbolico se usa el comando ln con el modificador -s.
    Ejemplo:
    Código:
    ln -s /opt/aplicacion/ejecutable /usr/sbin/enlace_a_ejecutable
    De esta manera, si tecleamos 'enlace_a_ejecutable' en la consola, estaremos ejecutando el fichero /opt/aplicacion/ejecutable.

    Si quitamos el -s, estaríamos creando un enlace duro y, ya sabes que si borras el enlace, borras tambien el original.

    Un saludo.

  11. #11
    Instalación de drivers wifi de windows en Linux

    En muchas ocasiones, con algunas tarjetas wifi, linux no las detecta y el fabricante no tiene drivers diseñados para linux. En ese caso, hay que recurrir al ndiswrapper para cargar el driver de windows.
    Obviamente, no es una buena solución y, en el supuesto de que funcione, nunca va a dar el mismo rendimiento que si fuera un driver diseñado para linux, pero bueno... menos da una piedra.

    El proceso de instalación no voy a explicarlo ya que imagino que todas las distribuciones tienen disponible el paquete en sus repositorios para instalarlo, en caso de que no lo esté ya.
    Tampoco voy a entrar a explicar todas las peculiaridades del ndiswrapper ya que hay mil opciones, mil problemas y mil soluciones diferentes. Normalmente, en internet hay mucha información de como resolver los problemas con cada tarjeta.
    No obstante, en terminos generales, el proceso es sencillo.
    [LIST=1][*] Localiza los drivers de windows con el fichero .inf y el .sys que sean necesarios.[*] Ejecuta 'ndiswrapper -i nombrefichero.inf'. Esto copia los archivos necesarios al directorio /etc/ndiswrapper y crea los ficheros de configuración para tu tarjeta.[*] Despues ejecutas 'ndiswrapper -l' y te debe salir algo asi:
    bcmwl5: driver installed
    device (14E4:4320) present

    Llegados a este punto, asumimos que no ha salido ningun error.
    [*] Una vez que el driver está cargado, hay que cargar el modulo. Para eso, hay que ejecutar 'depmod -a' para comprobar que no hay errores de dependencias.[*] Despues, ejecutamos 'modprobe ndiswrapper'.

    Con esto, el driver debe estar cargado si no hay errores. Para ver los errores de sistema tecleamos el comando 'dmesg' y tiene que aparecer una linea que ponga algo asi como 'ndiswrapper version loaded'. Eso indica que todo ha ido bien y se ha conseguido iniciar el driver.
    Ya debería poderse configurar el driver, asignar IP y conectar a la red wifi.

    No obstante, en caso de encontrar algun error o querer mas información, podeis entrar aqui.

    Un saludo.

Información de tema

Usuarios viendo este tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •