Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta Linux. Mostrar todas las entradas

jueves, 13 de enero de 2011

Comandos Básicos en Linux

Ya hablé de Linux en anteriores entradas, hoy voy a hablaros sobre los comandos en la Shell de texto, algo muy útil si os decantáis por usar un sistema linux.

-Antes de comenzar...


Debéis saber que linux funciona de una manera muy distinta a la que nos tiene acostumbrado Windows.

Para empezar, una de las mayores diferencias es que en Windows el usuario que instala el sistema es también el administrador, con la opción de habilitar también el usuario administrador. Un administrador es un usuario especial que tiene poderes para cambiar cualquier cosa del sistema y su acceso no tiene límites, lo que puede ser una desventaja, porque esto significa que si se cuela alguien en nuestro sistema mientras somos administradores, puede acceder a todo.

Por eso en Linux, nada más instalar el sistema, nos exige crear un usuario Root, que es el administrador en Linux, generalmente, él es el único que tiene el poder para cambiar las cosas del sistema, una vez creado Root nos permitirá crear nuestro usuario normal, que por defecto estará muy limitado. Si queremos ejecutar aluna orden administrativa, deberemos entrar como root, o introducir su contraseña, como ejemplo, usaré Debian en su modo Texto, que sólo muestra la línea de comandos, para dejar más claro este concepto.




Esta es la pantalla de Login de debian, si deseamos entrar como root, deberemos poner como nombre de usuario root y la contraseña que hayamos definido al instalar nuestra máquina.


Como veís, la situación ha cambiado un poco.
En la línea vemos que pone "debian1", ese es el nombre de nuestra máquina, lo que le sigue es el promt y el directorio en el que estamos situados. La almohadilla señaliza que somos usuarios con poderes de administrador, es decir, que somos root, y sólo aparecerá cuando un usuario tenga todos los poderes para cambiar el sistema, como es el caso de root.

El Gusanillo ese tan raro que sale a continuación "~" es el directorio en el que estamos situados, en concreto este símbolo nos indica que estamos en el directorio madre de Root (/root por normal general) pero si cambiamos de directorio, nos mostrará el nombre completo del directorio en el que estamos situados.


pwd es un comando que nos muestra el directorio en el que estamos situados en ese instante, como vemos, es el directorio madre de root.

Cuando seamos un usuario normal, nuestro promt cambiará por el símbolo del dolar "$", lo cual nos indicará que somos usuarios sin poderes administrativos, vamos que somos unos cacas.


He cambiado de usuario con la ayuda del comando "su", además, antes del nombre de la máquina nos indica qué usuario somos.

Hecha esta explicación básica, procedo a otra explicación básica.

En la estructura de archivos de Linux, el directorio raíz o directorio madre es / no, no es una broma, es /.

Por ello todos los directorios cuelgan de este directorio y además, a diferencia de Windows que gestiona los dispositivos por letras como si fuesen otro árbol de directorios, en Linux los demás dispositivos forman parte de este único árbol que es la /

Sé que esto es un poco complicado de entender al principio, pero pronto os haréis a la idea. En el caso anterior, Root cuelga directamente de / por eso la dirección completa de ese directorio es /root y si colgase algún directorio de /root... por ejemplo imaginemos que hay una carpeta llamada documentos dentro de root, su dirección sería /root/documentos. Siempre que queramos indicar que hay un directorio colgando dentro de otro directorio pondremos la barra...

si en documentos tenemos el directorio 2011... /root/documentos/2011... asi mismo los archivos también se expresan como que está colgando dentro del directorio... /root/documentos/prueba.txt.

Los directorios también pueden expresarse con direcciones relativas además de las absolutas, aunque ese berenjenal vendrá en otra ocasión.

Y ya por último, los usuarios normales tienen su carpeta personal dentro de /home, que viene a ser exactamente lo mismo que el "Documents and settings" de windows, donde cuelgan nuestros directorios personales con todos nuestros documentos y demás.

-Comandos

- su [nombre de usuario] - Este comando sirve para cambiar de usuario, si no indicamos nombre de usuario, el sistema tratará de logearse como root y te pedirá su contraseña.

pwd - Muestra el directorio en el que estamos situados, en caso de que tengamos alguna duda.

- whoami - Nos muestra el usuario que somos en este momento, puede ser útil en caso de que no venga el nombre antes de la máquina o de que seamos root sin saberlo.

- ls [ruta del directorio] - Muestra el contenido del directorio en el que estamos situados, si añadimos la ruta, nos enseña el contenido del directorio especificado por la ruta. Si se usa con la opción -l (ls -l) nos muestra los permisos del contenido y tipo de archivos que hay en el directorio.

-cd [ruta del directorio] - Cambia de directorio, si especificamos ruta ira al directorio especificado, si no se pone nada, ira al directorio padre (en caso de root /root), si ponemos cd .. subirá un nivel de directorio (estamos en /root/documentos ejecutamos cd .. y subimos a /root)

-mkdir [Ruta del directorio] - Comando que sirve para crear un directorio, como siempre al poner la ruta el directorio se creará dentro de la ruta especificada [ruta del directorio/nombre del directorio a crear], si no se pone ruta el directorio se creara donde nos encontremos. Podemos usar varias opciones para hacer un arbol de directorios.

-clear - Limpia la pantalla y deja sólo la primera linea.

-nano - No es un comando propiamente dicho, es una aplicación especial para la Shell de comandos que nos permite crear ficheros de texto plano en los que podemos incluir instrucciones, scripts...

cat [ruta del archivo] - Muestra el contenido de un archivo de texto, aunque parezca una mierda, es altamente útil.

- ifconfig - Muestra el estado de nuestras tarjetas de red; direccion ip, máscara de red y puerta de enlace.

- cp [ruta del archivo a copiar Ruta de la copia del archivo] - Copia un archivo (se puede renombrar si lo deseas) en otra ubicación o en la misma. Como siempre depende de como indiques las rutas. Permite copiar directorios.

- mv [Ruta del archivo a mover Ruta del archivo que has movido] - También podemos renombrar el archivo y permite mover directorios.

Y por ultimo y más importante...

- man [nombre del comando] - Nos saca un manual completo del comando, con todas las opciones que podemos ejecutar en él y explicando para que sirven. La gran putada, es que a veces el contenido está en inglés, otras veces sólo parte del contenido y otra en español... es un poco caos... pero a poco que entiendas de inglés te sacará de muchos apuros.

Además, todos los comandos tienen la opción --help que nos saca una ayuda extra de lo que estamos haciendo con el comando en ese momento.

Otras cosas

La Shell de comandos de Linux se conoce como bash, podemos encontrarlo en /bin/bash.

Además, nos permite ejecutar más de una interfaz de terminal pulsando CTRL+ALT+Fn (n es un numero del 1 al 6 terminales que hay.)


Bueno, pues hasta aquí todo, podéis encontrar más información en www.ubuntu-es.org


Recordad también que algunos comandos pueden variar dependiendo de la distribución, así que informaros bien antes de nada, los comandos que he puesto son genéricos, por lo que no tendréis problemas, un saludo navegantes.

martes, 21 de diciembre de 2010

Linux-GNU

Linux-GNU

-¿Qué es Linux-GNU?

Mucha gente no conoce los sistemas operativos Linux, basados en Unix.
Son conocidos por su férrea promoción del software libre y gratuito.

La gente generalmente lo conoce como "Linux" simplemente, aunque en realidad, Linux es sólo el Kernell, desarrollado a comienzos de los 90 por Linus Torvalds.

El Kernell es la parte más baja de un Sistema Operativo, la que está en contacto con el Hardware y que los usuarios no podemos ver. En esta parte, se ejecutan controlan los procesos necesarios para llevar a cabo la comunicación entre los dispositivos del ordenador y las aplicaciones del sistema operativo.

Las aplicaciones en las distribuciones Linux son desarrolladas por GNU, un proyecto desarrollado por Richard Stallman que tenía por objetivo crear un Sistema Operativo que fuese libre. Juntó su software con el de Linux para crear lo que conocemos actualmente como "Linux-GNU" más conocido popularmente como "Linux".

Es decir, las aplicaciones de GNU usan como corazón el Kernell de Linux.

-¿Cómo funciona Linux-GNU?

Al principio Linux tenía el inconveniente de que sólo podía gestionarse por comandos, por lo que era necesario tener un amplio conocimiento de informática para manejarse por una Shell que sólo nos ofrecía texto plano.

La Shell es el el caparazón de un sistema operativo, lo que el usuario si puede ver, manejar e interactuar con ello.

Al principio, la interfaz de Linux sólo era texto, pero gracias a la unión con GNU este problema se solucionó.

Su interfaz funciona de un modo distinto a Windows.

En la Shell de línea de comandos, que es la que tenía Linux en sus comienzos, se usaban comandos basados en Unix, otro sistema operativo no libre, y que fue de los primeros en aparecer.
La mayoría de sistemas están basados en Unix, por lo que la sintaxis de sus comandos es muy parecida, a excepción de Windows, que usan una Shell de comandos conocida como DOS o MS-DOS, cuyos comandos y sintaxis de los mismos no tienen nada que ver con los comandos Unix.

La Shell gráfica, que en Linux apareció en los años 90 gracias a la aportación de GNU, también tiene un funcionamiento distinto a la de Windows.

La interfaz gráfica, también conocida como GUI, en linux funciona de manera cliente/servidor, es también un sistema que tuvo su origen en Unix.

El servidor se conoce como X-Window (Actualmente en su versión 11), ofrece servicios para acceder al teclado, ratón y pantalla, además al ser un servidor, su uso es independiente al del sistema operativo, por lo que también permite acceder a una interfaz gráfica de una aplicación de forma remota.

Este servidor nos da un sistema de ventanas sencillas, sin prácticamente opciones, en las que solamente se nos muestran los archivos, y en las aplicaciones algunas de las opciones más fundamentales, imaginaos, ¡Ni siquiera se podían cerrar las ventanas, ni minimizarlas, ni redimensionarlas!

Más tarde nacieron los gestores de ventana, los más populares son Gnome y KDE. En caso de estos dos, también nos dan la carpeta de fondo del escritorio, añaden funcionalidad a las ventanas que nos ofrece el servidor X, navegar por carpetas, diseñar las ventanas e interactuar con ellas. Aunque existen muchos otros gestores de ventana, no todos nos dan la posibilidad de manejar un escritorio, como es el caso de Ice-WindowMaker. Los gestores de ventanas si funcionan compenetrados con el sistema operativo, a diferencia de X.

Todo esto en Windows se hace a través de un sólo proceso que podemos ver en el administrador de tareas (Presionar ctrl+alt+supr). Este proceso se llama "Explorer.exe" y es el programa que nos da las ventanas, las decora y nos ofrece un escritorio.

-¿Que diferencia Linux-GNU de Windows?

Existen muchísimas diferencias entre ambos sistemas que son muy significativas.

Obviamente, la primera de ellas, es la interfaz gráfica, la forma de gestionar las ventanas y decorarlas.

La segunda diferencia es la forma de gestionar la información. En la actualidad, Linux usa sistemas de fichero EXT(en su versión 4) o UTFS, en cambio Windows sólo usa NTFS y el antiguo FAT para algunos casos, lo que a veces conlleva a conflictos entre ellos, ¡Nunca instaléis un Windows después de un Linux! Para Windows es como si Linux no existiese, al instalar un sistema windows, este borrara el sector de arranque de nuestro Linux y sólo podremos recuperarlo si instalamos a mano un gestor de arranque como GRUB.

Además, en la navegación de archivos, Windows usa el sistema NETBIOS, mientras que en los demás sistemas Unix se usa el sistema creado originalmente por Unix.

Gestión de archivos en Windows:
C:\users\usuario\mis documentos

El NetBios usa la barra invertida para indicar los cambios de directorio, además, a cada dispositivo le dedica una letra por defecto, es como tener varios árboles distintos de información.

Gestión de archivos en Unix:
/home/usuario/documentos

En Unix sólo existe un único árbol de información, los demás dispositivos se montan dentro de ese árbol y pasan a formar parte de él, además usan la barra normal para indicar cambios de directorios, siendo "/" su directorio principal, en lugar de usar letras para cada dispositivo en Windows.

Como habréis comprobado, en Windows el directorio ráiz es el de la letra del dispositivo.

Este capricho de Windows, también hace que sea un problema a la hora de compartir carpeta, pues Windows usa un sistema llamado CIFS, basado en SMB. Al principio era imposible compartir recursos entre máquinas windows y linux mediante este protocolo, pero en linux se hizo una implementación libre conocida como SAMBA con las extensiones que incluyó microsoft.

Otra diferencia significativa es la forma de gestionar las aplicaciones. En windows las aplicaciones usan lenguaje c++ y binarios, en cambio en Linux-GNU almacena la mayoría de la información referente a programas y configuración del sistema en ficheros de configuración hecho en texto, aunque los programas también tienen su parte de código.

Existen más diferencias que ya iremos analizando poco a poco...

-Distribuciones de Linux-GNU

Al ser software libre, hay muchas versiones de Linux, cada una con sus características propias desarrolladas por programadores en la red.

Las principales versiones de Linux son: Debian, Red Hat, Suse, Madrake (en Español Mandriva)

Estas versiones son, por decirlo de algún modo, los sistemas originales desarrollados por los programadores de GNU y Linux, aunque muchos otros programadores desearon aportar su granito de arena en el proyecto Linux-GNU y desarrollaron otras versiones de estos sistemas operativos que tenían como núcleo el de su versión original, pero variaban en su aspecto, aplicaciones, etc..., se conocen como distribuciones.

Debian Red Hat Suse Mandriva
Ubuntu Fedora OpenSuse
Kubuntu
Xubuntu
Mint

La diferencia entre estas versiones no es mucha, cambian la sintaxis de algunos comandos, la interfaz y las aplicaciones, puesto que algunas distribuciones están más pensadas para llevar a cabo una tarea determinada que para ser utilizadas por usuario.

Para usuario, la distribución más popular es Ubuntu y Debian, aunque el funcionamiento de Ubuntu es mucho más intuitivo, especialmente para usuarios que no sepan mucho sobre informática.

¿Para que se usa Linux?

La respuesta es para todo.

Es un sistema que al principio no tuvo mucha acogida por el usuario normal debido a su complejidad, aunque gracias a distribuciones como Ubuntu, ese problema cada vez se queda más aislado y ahora la compatibilidad entre Linux y Windows, que siempre ha sido uno de los grandes problemas, esta prácticamente solucionada, pues la mayoría de distribuciones de Linux son compatibles con el sistema de archivos NTFS.

Además, en su centro de software ofrecen miles de aplicaciones, tanto para el usuario, como para el informático experimentado, la mayoría tienen un uso intuitivo y son fáciles de usar, es sólo cuestión de costumbre.

Linux es también uno de los sistemas preferidos por los administradores, ya que sus aplicaciones servidores son fáciles de instalar, usar y además consumen poco, algo fundamental en el mundo de los servidores.

Linux también puede ser empleado como Router y ofrecer NATP, incluso podemos configurar un pequeño Firewall.

Además, la mayor ventaja de los sistemas de Linux es que consumen muy pocos recursos y cada vez son más fáciles de usar.

Fuentes: Apuntes de informática 1º SMR, Juan Carlos Villalba y Álvaro García Sánchez (2º SMR)