miércoles, 10 de noviembre de 2010

Comandos Basicos

1- Manejo de directorios y archivos- 


Creación de directorios:
Para esto usaremos el comando "mkdir" como en DOS seguido del nombre del directorio a crear.

        mkdir <nombre>

Copiado de archivos
La orden "cp" copia los ficheros listados en la línea de comandos al fichero o directorio pasado como ultimo argumento.
        cp <origen> <destinod>

Mover archivos
Tanto para mover como para renombrar archivos o directorio usaremos el comando "mv" de idéntica manera a "cp" solo que en esta caso no se preservara el origen.
        mv <origen> <destino>

Borrado de archivos
Para borrar se usa "rm" que viene de remove. Se usa con un parámetro que es el nombre del fichero a borrar o una lista de ellos. También lo podemos usar para borrar directorios completos con el parámetro "-r" a hay que ser muy prudente y cuidadoso con este comando ya que podemos hacer macanas.

rm <nombre de archivo o directorio>


Mirando los ficheros
Las ordenes "more", "cat" y "less" son usadas para ver el contenido de ficheros. More y less muestran el fichero pantalla a pantalla mientras que cat lo muestra entero de una vez.
       
more <archivo>
        less <archivo>
        cat <archivo>



El sistema de ficheros y la jerarquía de directorios.
Primero cambie al directorio raiz (cd /) y ejecute ls -F. Probablemente vera estos directorios:
bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, y var.
La distribución de directorios y archivos es Unix es muy ordenada y distinta que en DOS, veamos para que usamos cada directorio.
/bin: es la abreviación de "binaries", o ejecutables.  Es donde residen la mayoría de los programas esenciales del sistema. /dev: los "ficheros" en /dev son conocidos como controladores de dispositivo (device drivers)_son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc
/etc
: contiene una serie de ficheros de configuración del sistema.  Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicialización del sistema), etc. /sbin: se usa para almacenar programas esenciales del sistema, que usara el administrador del sistema. /var: contiene directorios que a menudo cambian su tamaño o tienden a crecer. Muchos de estos directorios solían residir en /usr, por ejemplo en /var/adm encontraremos varios ficheros de interés para el administrador del sistema, específicamente históricos del sistema, los cuales recogen errores o problemas con el sistema. /usr/src: contiene el código fuente (programas por compilar) de varios programas de su sistema.  El mas importante es /usr/src/linux, el cual contiene el código fuente del kernel de Linux. /usr/local: es el directorio donde normalmente pondremos nuestras aplicaciones. /usr/include: contiene los ficheros de cabecera para el compilador de C. Estos ficheros (la mayoría de los cuales terminan en .h, de "header") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programación de en UNIX a nivel de sistema. Si esta familiarizado con el lenguaje de programación C, aquí encontrara los ficheros de cabecera como stdio.h, el cual declara funciones como printf(). /usr/bin: es el deposito real de programas del sistema UNIX. Contiene la mayoría de los programas que no se encuentran en otras partes como /bin. /usr/X11R6: contiene todos los ejecutables de X Window, ficheros de configuración y de soporte. /usr: es un directorio muy importante.  Contienen una serie de subdirectorios que contienen a su vez algunos de los mas importantes y útiles programas y ficheros de configuración usados en el sistema. /proc: es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener información acerca de que programas y procesos están en ejecución.  /lib: contiene las imagines de las librerías compartidas.  Estos ficheros contienen código que compartirían muchos programas. /home: contiene los directorios "home" de los usuarios. Por ejemplo, /home/juan es el directorio del usuario "juan".



2- Comandos del Sistema



Administración de archivos
ls[opción(es)][archivo(s)]
Si introduce ls sin más datos ni parámetros, podrá ver un listado resumido con el contenido del directorio en el que se encuentre en ese momento.
-l

lista detallada,
-a

para ver los archivos ocultos.
cp[opción(es)]archivo_original archivo_copia
Crea una copia de archivo_original en archivo_copia.
-i

Espera, dado el caso, una confirmación antes de sobreescribir un archivo_copia existente.
-r

Copia recursiva (incluyendo subdirectorios)
mv[opción(es)]archivo_origenarchivo_destino
Hace una copia de archivo_origen en archivo_destino y a continuación borra el archivo original.

-b

Crea una copia de seguridad antes de desplazar archivo_origen.
-i

Espera, dado el caso, una confirmación antes de sobreescribir un archivo_destino existente.
rm[opción(es)]archivo(s)
Borra el archivo(s) indicado del sistema de archivos. Los directorios no serán borrados con el comando rm a menos que se haya especificado de forma explícita a través del parámetro -r.

-r

Borra, si existen, los subdirectorios existentes
-i

Espera una confirmación antes de borrar cada uno de los archivos


ln[opción(es)]archivo_origenarchivo_destino
Crea en archivo_destino una referencia cruzada dentro del sistema de archivos, (Link) del archivo_origen con otro nombre. Normalmente este enlace apunta directamente a la posición de archivo_origen dentro de un sistema de archivos. Si por el contrario se ejecuta el comando ln con la opción -s, se creará un denominado enlace simbólico que apuntará exclusivamente a la rama de archivo_origen y que por esa razón podrá ser usado fuera de los límites del sistema de archivos.

-s

Crea un enlace simbólico.


cd[opción(es)]directorio
Cambia el directorio actual. Si sólo se introduciecd, se desplazará al directorio home.

mkdiropción(es)]directorio
Crea un nuevo directorio.

rmdir[opción(es)]directorio
Borra el directorio, pero sólo si está vacío.

chown[opción(es)]nombreusuario.grupoarchivo(s)
Cambia el dueño de un archivo, otorgándole la propiedad a nombreusuario.

-R

Cambia los archivos y directorios en todos los subdirectorios.


chgrp[opción(es)]nombregrupoarchivo(s)
Cambia el nombre del grupo al que pertenece el archivo por nombregrupo. El dueño del archivo sólo puede cambiar este valor si pertenece tanto al grupo al que pertenecía el archivo hasta ahora como al nuevo grupo al que pertenecerá el archivo.

chmod[opciones]modoarchivo(s)
Cambia los permisos de acceso a uno o varios archivos.
El parámetro modo tiene tres partes: grupo, acceso y tipo de acceso. grupo acepta los siguientes caracteres:
u
para el usuario 
user,
g


para el grupo 
group,
o

para todos los demás: 
others.

+ y - se utilizan para permitir o denegar el acceso, de manera que: el símbolo + permitirá el acceso y el símbolo - lo denegará.

Los tipos de acceso son controlados por las siguientes opciones:
r
para lectura 
read,
w
para escritura 
write,
x

Ejecutar archivos o cambiar de directorio 
eXecute.
s

Setuid-Bit; el programa se ejecutará con los privilegios del propietario del archivo.


gzip[parámetros]archivo(s)
Este programa comprime el contenido de archivos mediante unos complicados procesos matemáticos. El nombre del archivo comprimido termina con .gz y debe ser descomprimidoantes de poder ser usado nuevamente. Si desea comprimir más de un archivo o directorios completos, deberá usar además el comando tar.
-d
Descomprime el archivo comprimido gzip, recuperando éste su tamaño original y pudiendo volver a ser utilizado de forma normal (corresponde al comando gunzip).

taropcionesnombrepaquetearchivo(s)
El comando tar agrupa uno o (normalmente) más archivos en un llamado paquete, que luego se puede p.ej. comprimir. tar es un comando muy complejo, que ofrece una gran cantidad de opciones. A continuación le enseñamosalgunas de las combinaciones más usadas.
-f
La información generada por el proceso se escribe en un archivo y no se muestra en la pantalla, como está previsto por defecto 
file.
-c
Crea un nuevo archivo tar 
create.
-r
Agrega archivos a un paquete existente.
-t
Muestra el contenido de un paquete.
-u
Agrega archivos al paquete, pero sólo si estos son más recientes que los existentes.
-x
Desempaqueta archivos de un paquete (
extrae)
-z
Comprime con 
gzip el paquete generado.
-j
Comprime con 
bzip2 el paquete generado.
-v
Da los nombres de los archivos procesados.
Los archivos creados mediante 
tar terminan en .tar. Cuando el archivo tar ha sido además comprimido con gzip, la terminación será .tar.gz, con bzip2, será .tar.bz2.
Encontrará aplicaciones de ejemplo en el apartado
locateprueba Con el comando locate se puede averiguar en qué directorio se encuentra el archivo especificado. Para ello también se puede usar los ComodinesEl programa trabaja muy rápido ya que no busca en el sistema de archivos, sino en una base de datos propia creada a tal efecto. Éste es el mayor problema de estos comandos rápidos, ya que los archivos creados posteriormente a la última actualización de esta base de datos, no se tienen en cuenta.

Como root puede crear esta base de datos usando el comando 
updatedb.

updatedb[opción(es)]
Con este comando se puede actualizar de forma sencilla la base de datos requerida porlocate. Para conseguir que todos los archivos se tengan en cuenta, se debe ejecutar el comando como root. También es posible, añadiendo al final del comando el símbolo &, que el programa se ejecute en segundo plano, y así poder seguir trabajando mientras se produce la actualización . (updatedb &).
find[Opción(en)]
Con el comando find puede buscar un archivo en un determinado directorio. El primer argumento representa el directorio desde el que debe comenzar la búsqueda. La opción -name requiere una cadena de búsqueda, en la que también se permite el uso deComodines. Al contrario que locatefind busca en el directorio especificado, no en una base de datos.

martes, 9 de noviembre de 2010

Primeros Pasos en Linux

En esta entrada les proporcionare los conocimientos basicos de un Sistema Operativo Linux.


1. que es Linux? Linux es un sistema operativo basado en el núcleo de Unix, el cual es muy robusto seguro y eficaz para cumplir con sus tareas además que esta libre de virus.


hay diferentes distribuciones entre las cuales las mas famosas son: Mandrake, Mandriva ( son del mismo creador), Fedora, Centos, Debian, etc. cuyas diferencias son pocas aparentemente pero en cuanto a paquetería se trata tienen un gran universo cada una.

2. Linux como lo instalo: bueno eso depende de cada distribución pues algunas como por ejemplo Debian solo te permiten instalar el so al disco duro desde el respectivo medio sin poder ver antes su contenido, hay otras distribuciones que puedes utilizar antes de instalar (este es el caso de Ubuntu), a dichas distribuciones se les conoce como livecd puesto que puedes trabajar desde ellas sin instalar nada en tu disco duro y en caso de que las quieras instalar traen una opción para instalar de manera rápida y eficiente (vale la pena aclarar que hoy en día ya están muy avanzadas estas herramientas y con unos simples clic ya tienes instalado el sistema operativo en tu pc).

3. particiones documentos y mas.

tal vez es aquí donde al pasar de windows a Linux hay dolores de cabeza puesto que aquí no existe document and settings o archivos de programa o mis documentos no no aquí las cosas son un poco diferentes puesto que aquí no hay particiones diferentes con carpetas, bueno es posible separar algunos ficheros en distintas particiones, pero físicamente solo veras todo el contenido de tu disco duro o mas bien de tu instalación de Linux en un solo lugar llamado sistema de archivos ( vale aclarar que si tienes windows y Linux en el mismo disco duro desde Linux veras la partición de windows), te voy a hablar de tres ficheros diferentes los cuales considero que son los mas usados y para tus futuras configuraciones los que debes saber manejar.

/home: es en donde se almacena tu información personal si quieres ver lo que tienes en tu escritorio o en el escritorio de otro usuario en este fichero encontramos todos los usuarios creados para trabajar con el so, si quieres explorar estos ficheros solo habré un terminal y escribe nautilus y enter y hay busca sistema de archivos y explora el fichero home.

/etc: es muy importante pues es aquí donde se almacena la configuración de muchos de los programas que tengas instalados, te recomiendo navegar por ella sin hacer cambios a nada y asi podrás entender donde se almacenan las configuraciones de tus programas.

/usr: es donde los programas se alojan físicamente, es donde se encuentra la estructura de los programas es decir es donde se encuentran los archivos de arranque de tus programas aunque este fichero no es el único que almacena este tipo de archivos.

/var: es aquí en donde encontraras los logs de el sistema y de los programas que utilizas es decir si navegas por este fichero y te vas a /var/log halli podrás ver los diferentes logs de el sistema, los cuales se encargaran de informarte del estado de los programas y lo que hacen mm si no me crees dentro de /var/log hay un archivo que se llama sys.log el cual registra los eventos de lo que esta haciendo tu so.. hay veras todo y es desde halli es donde puedes encontrar los errores de tu sistema.

de el resto de ficheros no te hablo por que No lo se todo pero es que quiero que descubras que hay en cada uno como por ejemplo en /media.



4. e escuchado que puedo elegir mi escritorio, como lo hago?


bueno aquí vale explicar lo siguiente, en Linux hay diferentes tipos de entornos de escritorio entre los cuales encontramos a Kde, Gnome, xfce, Metacity entre otros.

Kde: es un entorno de escritorio muy parecido al de windows, pero no es 100% libre es decir que hay muchas cosas que si las quieres las tienes que pagar(pero no te asusten que no son muchas y pss hay muchas opciones y la verdad no hace falta lo privado); lo malo es que consume un poquito mas de recursos que los demás entornos; pero para pasar de windows a Linux yo diría que esta es tu mejor opción (el kubuntu ya trae por defecto este entorno)

Gnome: excelente entorno de escritorio muy rápido liviano no consume mucho recurso, pero lo malo es que este entorno de escritorio es mas enfocado a los que ya manejan algo de Linux pues su estilo y sus menús son muy diferentes a windows (pero si me preguntaran yo diría que este es el mejor y el mas recomendable de usar) y bastante mas personalizable que kde


Xfce: un entorno de escritorio excelente que no consume muchos recursos y es muy liviano y robusto pero un poco mas complejo de manejar que el Gnome. Este escritorio especialmente esta pensado para equipos de bajos recursos.


5-Sistema de ficheros:





Si vienes del mundo de Windows lo primero que te sorprenderá es que no está la unidad C:. La distribución de los discos y particiones en Linux es diferente. Ya en la instalación te puedes dar cuenta cómo se nombran los discos en Linux:
  • El primer disco duro es /dev/hda (Hard Disk ide A)
  • El segundo disco duro es /dev/hdb (Hard Disk ide B)
El disco tendrá una o varias particiones, así las del primer disco duro (/dev/hda) serán /dev/hda1, /dev/hda2, ... Éstas tiene el equivalente a lo que en Windows se llama C:, D:, ...etc.
En Linux todo es un archivo, y cuando digo todo es todo. Desde los archivos de datos hasta las particiones de los discos pasando por el ratón y la tarjeta de sonido. Los directorios también son archivos. Existe un directorio raiz (/) del que cuelga todo. Los dispositivos cuelgan del directorio /dev.
Algunos de los directorios más interesantes:
  • /: Raíz.
  • /usr: Aquí se encuentra la gran mayoría de los archivos existentes en un sistema Linux, tales como documentación, casi la totalidad de los comandos de usuario, juegos, librerías, etc.
  • /bin: Aquí están los comandos que pueden usar todos los usuarios (incluido el administrador o root).
  • /sbin: Aquí están los comandos que sólo puede usar el administrador o root.
  • /dev: Ahí están todos los dispositivos de nuestra máquina.
  • /home: Lugar donde se almacenan las cuentas de usuarios.
  • /lib: Enlaces a las librerías que se necesitan para el sistema.
  • /var: Contiene información variable, como por ejemplo los logs del sistema (/var/log), correo local, etc.
  • /tmp: Directorio temporal.
  • /etc: Configuración global de los programas.
  • /root: Cuenta del administrador.
  • /boot: Aquí está todo lo necesario para arrancar el sistema.
  • /media: Punto de montaje para sistemas de archivos montados localmente.
  • /mnt: Antiguo punto de montaje para sistemas de archivos montados localmente. Hoy en día está en desuso y se conserva por razones históricas.
  • /proc: Sistema de archivos virtual de información de procesos y del kernel.
Algunas referencias de Archivos conocidos:
  • /etc/apt/sources.list: Este archivo configura la lista de repositorios.
  • /etc/X11/xorg.conf: Este archivo define y configura el entorno gráfico a cargar.
  • /etc/fstab: Este archivo configura el acceso a los diferentes sistemas de archivos que hay en nuestro sistema.
  • /etc/passwd: Este archivo controla el uso de usuarios, en contraseñas, con permisos y grupos que pertenecen a cada usuario, archivo muy importante si uno quiere tener un usario root más que el ya conocido root.
  • /etc/readahead/boot y /etc/readahead/desktop: Estos archivos contienen la lista de rutas de todos los archivos que se van a cargar en la memoria caché durante elInicio_del_sistema.

    6- Permisos



El sistema de permisos de Linux es simple y efectivo. Existen tres tipos de permisos:
  • Ejecución: Si es para un archivo será ejecutable y si es para un directorio significa que podemos pasar por él. Es representado por una X.
  • Lectura: Si es para un archivo significa que podemos leerlo y si es un directorio es que podemos leerlo también. Es representado por una R.
  • Escritura: Si es para un archivo será que podemos escribir en él y si es para un directorio significa que podemos crear ficheros dentro de él. Es representado por una W
También existen tres tipos de roles sobre los que se aplican estos permisos. Un archivo pertenece a un usuario y a un grupo:
  • Usuario: El propietario del archivo.
  • Grupo: Grupo al que pertenece el archivo.
  • Otros: Los demás usuarios.
Veamos un ejemplo:
$ ls -l pg_backup.sh
-rwxr-x---  1  pepito usuarios  453  2005-02-17  09:35  pg_backup.sh
El archivo pg_backup.sh pertenece al usuario pepito y al grupo usuarios. Los permisos que tiene para el usuario son rwx lo que significa que el usuario pepito puede leer el archivo, escribir en él y ejecutarlo. Por la extensión vemos que es un script, por lo que es normal que se pueda ejecutar. Para el grupo tiene los permisos r-x. Eso significa que los miembros del grupo usuarios pueden leer el archivo y ejecutarlo, pero no modificarlo. Los permisos para los demás usuarios (otros) son ---, por lo que un usuario que no sea pepito ni pertenezca al grupo usuarios no podrá leer, escribir ni ejecutar el archivo.

7- Tipos de paquetes en GNU/Linux


Un paquete es un conjunto de ficheros relacionados con una aplicación, 
que contiene los objetos ejecutables, los archivos de configuración, 
información acerca del uso e instalación de la aplicación, todo 
ello agrupado en un mismo contenedor.  Encontramos los binarios y 
los que son el código fuente.

Paquetes binarios 

Contienen código maquina, y no código fuente, por lo que cada 
tipo de arquitectura (X(&, ALPHA, SPARC,...) necesita su propio 
paquete. Encontramos estos tipos de paquetes binarios:


RPM
Estos paquetes son utilizados por distribuciones Red Hat, Suse, 

Mandrake, Conectiva, Caldera, etc. 
DEB
Estos paquetes son utilizados por distribuciones como Debian, y 

las basadas en ella, como Ubuntu. La utilidad para manejar este 
tipo de paquetes son apt  y dpkg.
TGZ
Son utilizados por la distribución 
Linux Slackware.

Paquetes de código fuente 
Contienen el código fuente del programa, estos vienen con los archivos 
necesarios para compilar e instalar el programa manualmente. Suelen 
presentarse en formato .tar.gz o tar.bz2 (osea compactado con tar y 
comprimido con gzip o bzip). Lo normal es que cada aplicación tenga 
la informacion en el fichero README o INSTALL de  como instalarlo.

Instalando un aplicacion 
Generalmente la aplicación se presentará en un fichero tip .tar.gz o .tar.bz2.  
Lo primero que tendremos que hacer es descomprimir y descompactar el 
archivo.tar -zxf aplicacion-version.tar.gzen el caso que sea extension 
.tar.bz2, sería  tar -jkf aplicación-versión.tar.bz2
una vez descompactado y descomprimido, lo compilamos y lo instalamos así:
.
/configure
make
make install
Dentro de este tipo de paquetes, también se pueden encontrar paquetes de 
código fuente en formato rpm. Normalmente están identificados con el 
campo src. Estos paquetes no contienen la aplicación lista para instalar, 
sino su código fuente.  Mediante la instalación de este tipo de paquetes, lo 
que se consigue es compilar un nuevo paquete optimizado para la máquina 
en donde se ejecute, con lo que se crea un nuevo paquete rpm, que será el 
que finalmente instalaremos en nuestro sistema.

Instalando un paquete .rpm 
Normalment, la sintaxis para identificarlos es la siguiente:
Nombre-versión_aplicación-versión_paquete.arquitectura.rpm
Ej: paquete de instalación del servidor samba, version 3 del programa, 

version 15 del paquete para arquitectura i386.
samba-3.00-15.i386.rpm