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

jueves, 11 de abril de 2013

Introduciéndonos en la shell de Ubuntu

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Es la hora de la verdad, ya hemos instalado nuestro primer Linux. Lo tenemos todo reluciente ahí, luciendo en nuestro monitor. ¿A que no es tan distinto de Windows?

Lo primero antes de empezar a funcionar en Ubuntu, o en la distribución que uno escoja, es familiarizarse con el entorno. Hay cosas que cambian de nombre, otras que resultarán completamente nuevas y algunas, las habrá, que se echarán de menos. Podemos empezar afirmando que en GNU/Linux TODO tiene nombre, hasta la tontería más boba recibe algún tipo de denominación. Por ejemplo, lo que en Windows es simplemente el explorador de archivos en Ubuntu, openSUSE o Fedora es Nautilus, Dolphin o Konqueror, dependiendo de si estamos entornos GNOME o KDE; la ventana de comandos o shell tiene variantes como bash, dash, sh o ksh; los programas de instalación y configuración en sistemas derivados de Debian se llaman apt, aptitude y dpkg; en openSUSE el software responsable de la configuración y mantenimiento del sistema atiende por YaST; los derivados de Red Hat como Fedora utiliza la herramienta yum... En fin, es algo que iremos viendo poco a poco.

Pero lo que pretendo es que vayamos cogiendo soltura con el terminal. Los menús y el entorno gráfico son tan intuitivos como en Windows así que lo que merece atención es la línea de comandos a través del terminal.

Al terminal se le denomina también ventana de shell. Una shell es un software que permite interactuar con el sistema por medio de órdenes o comandos, y visualmente es una ventana con un prompt (línea que representa el nombre del usuario que uno haya escogido y el localhost o nombre que se haya dado al PC separados por una arroba, seguido de dos puntos, una tilde y el símbolo del dólar). Esto puede cambiar según la distribución, pero ya he dicho que vamos a centrarnos en Ubuntu. Así es como se verá nuestro prompt:



nombre_de_usuario@localhost:~$

La ventana de comandos, terminal o shell se parecen al antiguo MS-DOS pero conviene recordar que UNIX en anterior a que Bill Gates pensara en inventar MS-DOS.

Hay varios tipos de shell, que responden de forma distinta en función de los parámatros bajo los que hayan sido creadas. La más popular es bash, pero existen otras como sh (versión anterior de bash), tschcshksh y zsh. Yo he probado alguno otra y... mejor que quedo con bash. Si quisiéramos cambiar a otra utilizaríamos el comando chsh (change shell):



:~$ chsh
nombre_de_shell
:~$

Asumamos que tras terminar de teclear una línea pulsamos la tecla enter.Las shells instaladas se encuentran en el directorio /binPodemos ver un listado de ellas instaladas listando el archivo /etc/shells con ayuda del comando cat:



:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
:~$ 

También podemos cambiarla de una sola vez, ejecutando el comando con la opción -s y, a continuación, escribiendo la ruta de la shell que deseamos, por ejemplo, sh.


:~$ chsh -s /bin/sh
:~$

Si quisiéramos volver a bash no tenemos más que cerrar la terminal. Cuando la volvamos a abrir volveremos a estar con la shell bash. O podemos volver a ejecutar cualquiera de los comandos anteriores. Este:


:~$ chsh
nombre_de_shell
:~$


Y este otro:


:~$ chsh -s /bin/bash
:~$

Son conceptos durillos de asimilar para un recién llegado, pero si queremos exprimir nuestro Linux hay que empezar a pegarse con ellos.
Y hablando de pegar, Ian Dury pedía al frente de los Blockheads que le golpearan con un palo rítmico a finales de lo 70 en este mítico tema.


miércoles, 6 de marzo de 2013

Terminología básica que ayuda a no sentirse un tonto en un foro de Linux

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Ya hemos visto que, dado que el ordenador es nuestra herramienta principal, conocer al menos de oídas algunas expresiones nos puede ayudar a entender explicaciones futuras, o incluso a resolver problemas. Antes de entrar a decidir qué distribución Linux elegir también estimo necesario tener claros algunos términos que le son más propios. Nos ayudará a comprender de que hablan esos listillos que pululan por la red, impartiendo lecciones a diestro y siniestro, creyendo que se les entiende todo pero que, en mucho casos, solo contribuyen a que la confusión inicial se incremente e incluso ahuyente cualquier atisbo de curiosidad que uno pudiera sentir sobre Linux. Y lo digo por propia experiencia, lo foros de ayuda están atiborrados de gente así. Conociendo lo que viene a continuación usted podrá transitar por esos foros con algo más de seguridad.

LiveCD
Es una distribución (esto ya sabemos lo que es, ¿verdad?) almacenada en un CD o un DVD, ejecutable desde ese medio sin necesidad de instalar ni modificar nada en su equipo. Así, se puede trastear y navegar y probar cuanto haga falta (a una menor velocidad; recordemos que el acceso a las unidades de CD/DVD es más lento que a un disco duro) para, en caso de gustar y no encontrar conflicto alguno de hardware, optar por instalarla directamente. O si no, volver a probarla en otro momento. Para esto último basta con salir y apagar o reiniciar el equipo y extraer el disco del lector. Las cosas en su ordenador volverán a estar igual que antes, sin riesgo alguno para la integridad de sus archivos. Hay que destacar que se puede trasladar un LiveCD a un pendrive; determinándolo como unidad de arranque en el menú del BIOS del PC (al cual accedemos pulsando F11 en cuanto empieza el proceso de arranque) el ordenador inicializará el SO que encuentre en dicho pendrive para que, eso mismo, podamos trastear y explorar cuanto nos venga en gana. En resumen, una gran opción si queremos ojear de primera mano de qué va esto de los sistemas Linux sin compromiso ni riesgo alguno.

X-Window System
Es un software que proporciona una interfaz gráfica a los sistemas UNIX, como es el caso de Linux.

GDM (GNOME Display Manager)
Es un gestor de acceso al X-Window System basado en GNOME, materializado en una pantalla que le pedirá al usuario su nombre y contraseña (introducidos durante el proceso de instalación si así lo ha dispuesto) cada vez que quiera iniciar una sesión.

GNOME
Entorno de escritorio para sistemas tipo UNIX, usado para Ubuntu entre otras distribuciones. Me van a perdonar si hago mucho hincapié en Ubuntu y derivados pero es la distribución que manejo desde el principio y la que mas conozco.

Entorno de escritorio
Conjunto de características gráficas que definen el aspecto de un sistema operativo tipo Windows o Mac: colores, forma, disposición y apariencia de las ventanas y menús, tipografías y efectos varios (fundidos, desplazamientos, apariencia 3D, cortinillas...) y, en fin, esas cositas que hacen chulo y atractivo un SO. Es posible instalar diferentes entornos de escritorio para una sola distribución y después elegir la que más nos guste.

Unity
Entorno de escritorio implementado para Ubuntu en sustitución de GNOME y que no ha parado de cosechar críticas desde su aparición por los elevados recursos que consume. Por suerte, la opción de seguir usando GNOME sigue estando ahí.

Cinnamon
Entorno de escritorio propio de la distribución Linux Mint y que también se puede instalar en otras distros. En mi Ubuntu sustituí Unity por Cinnamon y todo fueron mejoras.

KDM
Es un gestor de escritorio para sistemas tipo UNIX, basado en KDE.

KDE
Entorno de escritorio para sistemas tipo UNIX, el más implantado en Linux junto con GNOME, usado en la distribución Kubuntu entre otras.

Xfce
Entorno de escritorio para sistemas tipo UNIX más ligero y pensado para máquinas menos potentes y usado en, por ejemplo, la distribución Xubuntu.

LXDE (Lightweight X11 Display Environment, Entorno de escritorio X11 ligero)
Entorno de escritorio para sistemas tipo UNIX aún más ligero, pensado para máquinas poco potentes, antiguas y netbooks, conocido por estar presente en la distribución Lubuntu.

Grub
Software que habilita un menú que le permite un arranque dual, esto es, elegir sistema operativo con que arrancar el ordenador en caso de que haya instalado una distro Linux teniendo ya Windows preinstalado. Muy útil para quien quiera empezar a valorar alternativas a SO de Microsoft.

Shell
Es el intérprete de comandos (órdenes, instrucciones), un interfaz (medio gráfico a través del cual el usuario se comunica con su ordenador) que nos permite introducirlos para generar una respuesta por parte del ordenador. Quienes se acuerden de MS-DOS sabrán que se entraba directamente a la shell al carecer este sistema de entorno gráfico. Es, en suma, cualquier intérprete que un usuario emplee para escribir comandos. En Linux hay diferentes tipos de shell en función de la sintaxis de redacción de los comandos, como bash, ash, csh o tsch.

Bash
Es un tipo de shell, la más común en sistemas Linux. Un software que interpreta los comandos desde la ventana shell. ¿Una equivalencia a modo de ejemplo? Shell es a los coches lo que Bash es a Seat, ash a Renault o csh a Peugeot.

Terminal o consola
Herramienta presente en el entorno gráfico de todas las distribuciones mediante la cual se nos da acceso a la ventana de shell.

Init
En sistemas UNIX, es el primer proceso en ejecución tras la carga del kernel, y que a su vez genera todos los demás procesos.

Kernel
Es el software principal que conforma un sistema operativo. Es el núcleo del sistema, el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o, en forma básica, el encargado de gestionar recursos a través de servicios de llamada al sistema (confieso que aún no se muy bien qué significa esto último).

Compiz
Gestor de ventanas para el X-Window System que proporciona una serie de efectos de visualización dentro del entorno de escritorio.

Repositorio
Los repositorios son contenedores de software del que se nutren las distribuciones GNU/Linux y están alojados en un servidor. De ahí uno se baja cualquier programa que en ellos se encuentre almacenado, y hay repositorios oficiales, la mayoría, y otros que no lo son. Desde el escritorio de Ubuntu, por ejemplo, se accede a ellos a través de una utilidad llamada Synaptic.

Superusuario o usuario root
Los sistemas basados en UNIX están concebidos para ser multiusuario y multitarea, por lo que existen restricciones de acceso a según qué usuarios, a según qué partes del sistema y para según que procesos. Para tener pleno acceso y control a cualquier punto del sistema hay que entrar en modo superusuario o modo root, eso sí, siendo consciente de que una gamba metida como root puede echar abajo todo el cotarro. De ahí que en Ubuntu venga deshabilitado por defecto y que para hacerlo efectivo haya que introducir el comando sudo delante de cada comando que uno quiera emplear, lo que puede resultar bastante coñazo.

Máquina virtual
Programa que le permite instalar otro sistema operativo dentro del que ya tiene instalado (el más común es VirtualBox) y que funciona como una aplicación más. Por ejemplo, puede instalar Windows virtualizado dentro de su distribución GNU/Linux favorita en esos molestos casos en que un periférico concreto (impresora, escáner, webcam...) sea indetectable por carecer de drivers para Linux, pero sí los tenga para Windows. Por supuesto, desde ese Windows virtualizado puede usted instalar Office, Photoshop o lo que le venga en gana. También funciona a la inversa, Windows como sistema anfitrión y un Linux virtualizado.

Por supuesto, Wikipedia y otras páginas están a su entera disposición para ampliar lo que yo les vengo contando.

Y con esto creo que ya pueden ir haciéndose una idea de lo que vendrá mas adelante. Bueno, en realidad no, el aprendizaje será lento, tanto como las imágenes en slow motion del siguiente vídeo: