Diferencia entre revisiones de «Interfaces de usuario gráficas y de línea de comandos»

De Vitalinux
Saltar a: navegación, buscar
(Ej. práctico: Gestión de Usuarios y Permisos)
 
Línea 1: Línea 1:
 +
{{:Curso_Formación_en_Vitalinux_EDU_DGA/_Nav}}
 
<includeonly>= Interfaces de Usuario Gráficas y de línea de Comandos =</includeonly>
 
<includeonly>= Interfaces de Usuario Gráficas y de línea de Comandos =</includeonly>
 
A diferencia de otros sistemas operativos GNU/Linux dispone de dos interfaces de comunicación con el usuario: (1) Una interfaz gráfica al estilo de Microsoft Windows y (2) una interfaz de línea de comandos, similar a MS-DOS pero con muchísima más potencia. En realidad, la interfaz Gráfica, GUI, no es más que un programa en ejecución o proceso lanzado de manera automatizada desde la interfaz de línea de comandos tras arrancar el equipo. Eso significa, que el control siempre lo tendremos desde la interfaz de línea de comandos, y desde ella podremos controlar todo el entorno gráfico. Además GNU/Linux se caracteriza porque es un sistema operativo multiusuario permitiendo que varios usuarios puedan estar trabajando de manera independiente en la misma máquina.
 
A diferencia de otros sistemas operativos GNU/Linux dispone de dos interfaces de comunicación con el usuario: (1) Una interfaz gráfica al estilo de Microsoft Windows y (2) una interfaz de línea de comandos, similar a MS-DOS pero con muchísima más potencia. En realidad, la interfaz Gráfica, GUI, no es más que un programa en ejecución o proceso lanzado de manera automatizada desde la interfaz de línea de comandos tras arrancar el equipo. Eso significa, que el control siempre lo tendremos desde la interfaz de línea de comandos, y desde ella podremos controlar todo el entorno gráfico. Además GNU/Linux se caracteriza porque es un sistema operativo multiusuario permitiendo que varios usuarios puedan estar trabajando de manera independiente en la misma máquina.

Revisión actual del 21:14 23 feb 2016


A diferencia de otros sistemas operativos GNU/Linux dispone de dos interfaces de comunicación con el usuario: (1) Una interfaz gráfica al estilo de Microsoft Windows y (2) una interfaz de línea de comandos, similar a MS-DOS pero con muchísima más potencia. En realidad, la interfaz Gráfica, GUI, no es más que un programa en ejecución o proceso lanzado de manera automatizada desde la interfaz de línea de comandos tras arrancar el equipo. Eso significa, que el control siempre lo tendremos desde la interfaz de línea de comandos, y desde ella podremos controlar todo el entorno gráfico. Además GNU/Linux se caracteriza porque es un sistema operativo multiusuario permitiendo que varios usuarios puedan estar trabajando de manera independiente en la misma máquina.

En concreto, cualquier sistema GNU/Linux dispone de varias terminales de línea de comandos disponibles para iniciar sesión accesibles mediante la combinación CONTROL+ALT+FX (X=1,2,3,4,5,6) y una interfaz gráfica por defecto accesible mediante CONTROL+ALT+F7.


Introducción a la Interfaz Gráfica

La interfaz gráfica de usuario GUI no es más que una aplicación más que se lanza al iniciarse la máquina. Debido a que GNU/Linux es software libre existen multitud de entornos gráficos disponibles que el usuario puede probar y quedarse con el más le guste. Entre los más conocidos cabría destacar a KDE, Gnome2, Gnome-Shell, XFCE, LXDE, etc. En concreto, LVitalinux al basarse en LUbuntu tiene implementado el entorno LXDE (Lightweight X11 Desktop Environment), el cual se caracteriza por ser extremadamente ligero al requerir muy pocos recursos (CPU y RAM) del equipo, razón por la cual puede ser instalado en equipos viejos de características reducidas.

Señalar que aunque el entorno de escritorio gráfico LXDE instalado por defecto es muy liviano y puede ejecutarse con cierta fluidez en equipos con muy pocos recursos, si las aplicaciones que se instalan sobre él (p.e. navegador Google Chrome, editor de imágenes GIMP, etc.) no lo son, y son estas las que hacen que el sistema acabe colapsándose no permitiéndonos el poder ejecutar varias simultáneamente.

Ej. práctico: Ejecutar Aplicaciones

Para lanzar o ejecutar una determinada aplicación en LVitalinux puede seguirse diversos caminos:


(1) Desde el menú principal. Las aplicaciones están categorizadas de tal forma que en función de la categoría a la que pertenecen las encontraremos en un submenú u otro.

(2) Mediante el lanzador de aplicaciones circular Gnome-Pie. Para acceder a él deberemos pulsar la tecla Super (tecla de Windows). Estos menús circulares podemos personalizarlos accediendo al icono de gnome-pie que hay en la parte inferior derecha.


001-sesion2-MIAS.png


(3) Mediante el lanzador de acceso rápido a aplicaciones Synapse.


002-sesion2-MIAS.png


Esta última opción, Synapse, es la opción más recomendada por su eficiencia.


¡¡Aclaración!!
Tanto Synapse como Gnome-Pie pueden personalizarse pinchando con el botón derecho del ratón sobre sus iconos correspondientes en la parte derecha de la barra inferior de tareas y eligiendo “Preferencias”.
003-sesion2-MIAS v2.png Synapse
004-sesion2-MIAS v2.png Gnome-Pie

Como ejercicio se puede probar a lanzar tu navegador preferido de las tres formas indicadas anteriormente.


Ej. práctico: Personalización del Entorno

La personalización del Entorno estará supeditada a si se ha optado en la post-instalación de LVitalinux por alguna forma de congelación (Escritorio o Perfil).

En principio, para poder personalizar en entorno deberemos ir al menú “Preferencias” del menú principal y seleccionar alguna de las opciones de personalización: “Preferencias de Escritorio”, “Personalizar apariencia y comportamiento”, “Aplicaciones predeterminadas para LXSession”, etc.


005-sesion2-MIAS.png


(1) Preferencias de Escritorio: Permite personalizar el entorno de Escritorio.


006-sesion2-MIAS.png


(2) Personalizar apariencia y comportamiento: Nos permite modificar el aspecto de nuestro entorno.


007-sesion2-MIAS.png


(3) Aplicaciones predeterminadas para LXSession: Nos permite decidir que aplicaciones serán las predeterminadas en nuestra sesión (p.e. decidir que programa por defecto reproducirá la música).


008-sesion2-MIAS.png


Otra opción de personalización es accediendo directamente al “Lubuntu Control Center”, del cual se hablará más adelante.


009-sesion2-MIAS.png

Ej. práctico: Action Scripts – Personalización del Explorador de Archivos

Los Action Scripts son un tipo de aplicaciones que nos permiten personalizar el entorno de nuestro Explorador de Archivos siguiendo un estándar.


010-sesion2-MIAS.png


Por ejemplo, observando en la captura de pantalla anterior podemos advertir que al pinchar con el botón derecho del ratón sobre un elemento del explorador de archivos aparecen una serie de opciones como “Desmontar USB”, “Abrir como Root”, “VitaScripts”, etc. Todo este tipo de aplicaciones son funcionalidades añadidas que aumentan la potencia del explorador de archivos y nos evitan hacer uso de otras aplicaciones específicas.


A modo de ejemplo, instalaremos un paquete que nos habilite un nuevo Action Script que nos permita comprimir imágenes en formatos PNG y JPEG (para comprimir JPEG online: http://compressjpeg.com/es/).


$ jpegoptim --dest=<path> --force --max=<quality> imagen1.jpg

$ pngnq -f $img

$ pngquant -force <ncolors> pngfile

$ pngquant 64 image.png


Introducción a la Línea de Comandos

Tal como ya se ha comentado anteriormente, en GNU/Linux la interfaz gráfica, GUI, es dependiente de la interfaz de línea de comandos, LUI. Por dicha razón, la administración del sistema a través de la interfaz de línea de comandos en GNU/Linux es más potente y eficiente que la GUI, razón por la cual es muy importante tener un conocimiento básico sobre ella. Para acceder a la LUI será necesario acceder a una terminal de comandos de alguna de las siguientes formas:


Combinación de Teclas
Resultado
CONTROL+ALT+T
Abre una nueva terminal gráfica
CONTROL+SHIFT+T
Abre una nueva pestaña en una terminal gráfica previamente abierta
CONTROL+ALT+FX (X=1,2,3,4,5,6)
Accede a una terminal del sistema

Gestión de Usuarios y Permisos en GNU/Linux

La administración de cuentas de usuario en GNU/Linux puede realizarse a través de aplicaciones en modo gráfico (GUI, Graphics User Interface) o en modo comando (CUI, Command User Interface). En relación a las aplicaciones gráficas GUI suelen ser dependientes de la distribución de GNU/Linux con la que se este trabajando, lo que implica que el nombre de dicha aplicación y su aspecto será diferente en cada una de ellas (Ubuntu, OpenSuse, etc.). Por contra, en un entorno CUI (Interfaz de Usuario de Línea de Comandos), los comandos GNU/Linux utilizados en la gestión de cuentas de usuario suelen ser independientes de la distribución, razón por la cual, en esta práctica se hará uso de ellos.


En concreto, para la gestión de cuentas de usuario y grupos de usuarios en GNU/Linux disponemos de los siguientes comandos: "useradd", "usermod" "userdel", "groupadd", "groupmod", "groupdel" y "passwd". Su sintaxis podríamos resumirla a grandes rasgos de la siguiente forma:


Comando y Descripción
Sintaxis y Ejemplos
useradd
Crea un nuevo usuario
useradd -m -d "directorio HOME" -s "SHELL" \

-g "grupo usuarios" -G "grupos secundarios" \

"nombre usuario"

useradd -m -d /home/dominio/usuario1 -s /bin/bash \

-g dominio -G empleados,gestores usuario1

useradd -m -d /home/empleado1 -s /bin/bash -g empleados \

-k /etc/skel-empleado -G empresa empleado1

usermod
Modifica las propiedades de un usuario existente
usermod -m -d "directorio HOME" -s "SHELL" \

-g "grupo usuarios" -G "grupos secundarios"

"nombre usuario"

usermod -G administradores usuario1

usermod -d /mnt/usuarios/usuario1 -g empleados usuario1

userdel
Elimina un usuario
userdel "nombre usuario"

userdel usuario1

groupadd
Crea un nuevo grupo de usuarios
groupadd "nombre grupo"

groupadd sercretaria

groupmod
Modifica un grupo existente
groupmod -n "nuevo nombre grupo" "nombre grupo"

groupmod -n gestion secretaria

groupdel
Elimina un grupo de usuarios
groupdel "nombre grupo"

groupdel gestion

passwd
Asigna una contraseña al usuario
passwd "nombre usuario"
id
Nos permite conocer los grupos a los que pertenece un usuario
idnombre usuario
chown
chgrp
Nos permite cambiar el propietario y grupo propietario de un archivo o directorio
chown -R usu archivo/directorio

chgrp -R group archivo/directorio

chown -R usu.group archivo/directorio

chmod
Permite cambiar los permisos de archivos y directorios
chmod u+rwx,g+rx-x,o-rwx archivo/directorio


¡¡Importante!!
A la hora de crear un usuario mediante useradd hay algunas de las opciones que sería interesante conocer en detalle:


- Opción "-m": sólo será necesaria en el caso de que el directorio HOME (p.e. /home/empleado1) a asignar a un usuario no exista y queremos que se cree en el momento de ejecutar el comando useradd. Es decir, que si el directorio HOME ya existe o lo creamos previamente mediante mkdir esta opción no será necesaria.

- Opciones "-g" y "-G": nos permiten agregar al usuario a algún grupo del sistema. Con la opción "-g" le cual será el grupo principal al que pertenecerá, y con "-G" indicamos otros posibles grupos de pertenencia. Es necesario que el grupo o grupos indicados existan previamente, sino será necesario crearlos mediante la aplicación "groupadd".

- Opción "-s": indica la shell o interprete de comandos que será asignado al usuario. En función de la shell asignada el usuario contará con la posibilidad de ejecutar en el equipo una mayor o menor cantidad de comandos del sistema. Ejecutando "more /etc/shells" podemos conocer las shells que están disponibles en nuestro sistema bajo las cuales un usuario puede iniciar sesión el la misma. Destacar que en ocasiones, por cuestiones de seguridad, nos puede interesar que el usuario a crear no tenga una shell válida, /bin/false, para evitar que el usuario no pueda iniciar sesión por determinadas vías (p.e. directamente en el equipo, vía ssh, etc.), y permitir únicamente acceso a aquellos servicios en los cuales se haya indicado expresamente (p.e. samba, proftpd, etc.).

- Opción "-k": nos permite crear a un usuario con un perfil especifico, es decir, con una estructura de directorios y archivos concreta. Por ejemplo, si quisiéramos que al crear un usuario este ya dispusiera de un conjunto preconfigurado de directorios y archivos dentro de su directorio HOME podríamos hacer uso de esta opción (ver el siguiente ejercicio como ejemplo).

Ej. práctico: Gestión de Usuarios y Permisos

A modo de ejemplo, a continuación se muestra como crear los grupos de usuarios grupo1 y grupo2, y los usuarios usu1, …, usu5 dentro de los grupos anteriores, teniendo en cuenta las especificaciones de la siguiente tabla:


Usuarios
Grupo Usuarios
Shell
Directorio Home
Esqueleto (skel) del Home
(Estructura de Archivos)
usu1
grupo1
/bin/false
/mnt/misusuarios/usuX
(X se corresponde con el identificador de cada uno de los usuarios 1, …, 5)
/etc/skel-usuarios


Dir.: datos, juegos
Arch.: bienvenido.txt
Accesos Directos: /var/www
usu2
usu3
usu4
grupo2
/bin/bash
usu5

Para crear las cuentas de usuario y grupos solicitados haremos uso de los comandos del sistema useradd, groupadd y passwd. En el caso de que alguno de los usuarios ya existiese, deberíamos hacer uso del comando usermod.

Comenzaremos creando el esqueleto de HOME que queremos que tengan los usuarios, según se ha especificado en el enunciado, y después crearemos los grupos y usuarios respectivamente. En concreto, a modo de ejemplo, el esqueleto HOME del usuario estará compuesto por dos directorios personales, datos y juegos, un archivo de bienvenida, bienvenido.txt, y un acceso directo a los sitios web alojados en la máquina (Apache sugiere almacenarlos en /var/www):

mkdir -p /etc/skel-usuarios/datos /etc/skel-usuarios/juegos
echo "Bienvenidos a este servidor!! ..." > /etc/skel-usuarios/bienvenido.txt
ln -s /var/www /etc/skel-usuarios/sitiosweb-apache


groupadd grupo1
groupadd grupo2
useradd -m -d /mnt/misusuarios/usu1 -s /bin/false \
-g grupo1 -k /etc/skel-usuarios usu1
useradd -m -d /mnt/misusuarios/usu2 -s /bin/false \
-g grupo1 -k /etc/skel-usuarios usu2
useradd -m -d /mnt/misusuarios/usu3 -s /bin/false \
-g grupo1 -k /etc/skel-usuarios usu3

useradd -m -d /mnt/misusuarios/usu4 -s /bin/bash \
-g grupo2 -k /etc/skel-usuarios usu4
useradd -m -d /mnt/misusuarios/usu5 -s /bin/bash \
-g grupo2 -k /etc/skel-usuarios usu5

passwd usu1
passwd usu2
passwd usu3
passwd usu4
passwd usu5

Por último, para comprobar que el esqueleto establecido en /etc/skel-usuarios de directorios y archivos se ha creado correctamente para cada uno de los usuarios anteriores, podría listarse el contenido de alguno de los directorios HOME, además de listar los grupos a los que pertenece el usuario:

ls -l /mnt/misusuarios/usu1
id

Interactuar con el sistema de ficheros desde la LUI

El sistema de archivos en GNU/Linux se caracteriza por tener una estructura en árbol invertido con una única raíz (root, /) de la cual cuelgan todos los directorios y archivos del sistema.

011-sesion2-MIAS.png


Por tanto, a diferencia de Windows que hace uso de letras (A:, B:, C:, D:, …) para identificar los dispositivos de almacenamiento, generando tanto árboles de sistema de archivos como dispositivos son detectados, en GNU/Linux a cada dispositivo se le asocia un directorio o punto de montaje dentro del árbol de directorios.


012-sesion2-MIAS.png


De entre todos los directorios que cuelgan de la ráiz del sistema de archivos cabría destacar los siguientes:


Directorio
Función
/home
Directorio por defecto donde se almacenan los perfiles de los usuarios. Cuando se crea un nuevo usuario en el sistema se le asigna un directorio HOME, /home/<nombre-usuario>, sobre el cual tiene todos los permisos de lectura y escritura
/media
Directorio que contiene los directorios o puntos de montaje de los dispositivos de almacenamiento externos que se conectan al sistema
/bin /sbin /usr/bin /usr/sbin
Directorios que contienen los ejecutables del sistema

Con la finalidad de interactuar con el sistema de archivos de GNU/Linux existen multitud de comandos disponibles para todo tipo de funciones entre los cuales cabría destacar los siguientes:


Comandos
Descripción
pwd
Nos permite conocer el directorio en el que nos encontramos
ls -lth
Lista los archivos y directorios que contiene el directorio en el que te encuentras. Al añadirle opciones podemos obtener toda la información disponible de esos archivos y directorios
cp origen destino
rsync -ahrlt origen destino
Nos permiten copiar archivos o directorios. Además rsync tiene la característica de que hace una copia incremental
mv origen destino
Nos permite mover un archivo de ubicación o renombrarlo
mkdir directorio
rm -Rf directorio
Nos permiten crear y borrar un directorio con todo su contenido
more archivo
cat archivo
less archivo
Nos permiten visualizar el contenido de un archivo desde la línea de comandos
nano archivo
Nos permite editar un archivo desde la línea de comandos

Ej. práctico: Interactuar con el sistema de ficheros

A modo de ejemplo visualiza y edita el archivo de configuración de Remasterys:


$ less /etc/remastersys.conf

$ sudo su

# cp /etc/remastersys.conf /etc/remastersys.conf.orig

# nano /etc/remastersys.conf


Ejecutar Aplicaciones desde la LUI

Para ejecutar una aplicación en GNU/Linux tenemos la opción de lanzarla desde la interfaz gráfica (*.desktop) o desde la línea de comandos (cat *.desktop | grep Exec). La ventaja de lanzar el comando desde la LUI es que en la terminal se mostrarán los posibles errores o warnings que pudiera haber tanto en su lanzamiento como en su ejecución.

Ej. práctico: Ejecutar Aplicaciones

A modo de ejemplo inicia el navegador Web mozilla firefox desde el entorno gráfico y desde la línea de comandos, o haz uso de remastersys.


$ firefox


$ remastersys clean

$ remastersys backup

Montar unidades de almacenamiento

Para GNU/Linux todo dispositivo de almacenamiento externo queda registrado en el directorio “/dev”. En concreto, los discos que son reconocidos por el sistema deberán figurar como “/dev/sdXY”, donde “X” se corresponderá con una letra (a, b, c, etc.) asociada al orden en que el dispositivo fue detectado, e “Y” será un número (1, 2, 3, etc.) correspondiente a la partición de dicho disco. Por ejemplo, “/dev/sda1” hace referencia a la primera partición (1) del primer (a) disco o dispositivo de almacenamiento detectado.


Para tener acceso a un disco que no haya sido automontado por el sistema será necesario realizar su montaje explicito sobre un directorio del sistema:


$ sudo mount /dev/sdXY /ruta-directorio


Para obtener información de los puntos de montaje del sistema podemos hacer uso de los comandos “df”, “mount” o “cat /etc/mtab”:


$ df -h

$ mount

$ cat /etc/mtab


También existe la posibilidad de enlazar (bind) sobre un directorio el contenido que esta en otro directorio, de tal forma que tendremos dos directorios diferentes para acceder a los mismos contenidos:


$ sudo mount --bind /directorio-origen /directorio-destino


En el caso de que queramos que un montaje se haga de manera automatizada deberemos editar el archivo “/etc/fstab”:


$ cat /etc/fstab


Por contra, quisieramos desmontar o desvincular del sistema de archivos un dispositivo que se encuentra montado será necesario hacer uso del comando “umount”:


$ sudo umount /dev/sdXY

$ sudo umount /ruta-directorio


Ej. práctico: Montar unidades de almacenamiento

A modo de ejemplo, pincharemos un dispositivo USB externo, lo desmontaremos ya que el sistema lo habrá detectado y automontado implícitamente, lo montaremos en otro directorio del sistema, y lo enlazaremos con otro directorio diferente.


$ sudo umount /media/nombre-usuario/dispositivo

$ mkdir /home/nombre-usuario/Desktop/midispositivo

$ sudo mount /dev/sdXY /home/nombre-usuario/Desktop/midispositivo

$ ls /home/nombre-usuario/Desktop/midispositivo


$ mkdir /home/nombre-usuario/Documentos/midispositivo

$ sudo mount -o bind /home/nombre-usuario/Desktop/midispositivo \

/home/nombre-usuario/Documentos/midispositivo


Ej. práctico: Información sobre procesos y memoria RAM

Aunque en el Escritorio disponemos de un Conky Widget que nos informa de la cantidad de CPU y memoria RAM que estamos consumiendo, existe la posibilidad de obtener una información mucho más completa mediante los comando “top” y “htop”. Además, como veremos un poco más adelante, vía “htop” podemos matar cualquier proceso o programa que se encuentre en ejecución tal como se mostrará más adelante en el apartado de “[#gestion-procesos Gestión de Procesos]”.

Para salir de “top” o “htop” debemos pulsar la tecla “q” (quit).


Ej. práctico: Edición de archivos

Como ya se ha mostrado en un ejercicio previo, la forma más sencilla de editar archivos de texto de la interfaz de línea de comandos es hacer uso de “nano” (la opción “-c” nos permite saber en que número de línea del documento nos encontramos).


$ nano -c /ruta-archivo-texto

$ sudo nano /etc/remastersys.conf

$ sudo remastersys clean

$ sudo remastersys backup

Ej. práctico: Creación de Alias de comandos

Si algún comando nos resulta complejo de aprender existe la opción de crear alias personalizados a dicho comando.


$ alias # nos permite conocer los alias que tenemos definidos

$ cd

$ nano .bash_aliases

alias info-sistema='htop'

alias listar='ls -lht'


Ej. práctico: Gestión de Servicios

Todos los servicios que están disponibles en la máquina se encuentran en “/etc/init.d”. Podemos conocer su estado, o reinicarlos añadiendo la opción correspondiente:


$ ls /etc/init.d

$ sudo /etc/init.d/samba # nos dirá las opciones de gestión del servicios

$ sudo /etc/init.d/samba status

$ sudo /etc/init.d/samba restart


Ej. práctico: Reiniciar Entorno Gráfico

El entorno gráfico es un servicio más del equipo llamado lightdm. En el caso de que queramos reiniciarlo simplemente será necesario ejecutar desde una terminal:


$ sudo /etc/init.d/ligthdm restart


Ej. práctico: Forzar el Cierre de la Sesión Gráfica

En el caso de que queramos forzar el cierre de la sesión gráfica de un usuario, simplemente ejecutaremos un comando “killall”:


$ sudo killall -u <nombre-usuario>


Ej. práctico: Forzar Reinicio de la Máquina

A veces nos encontramos con la necesidad de tener que reiniciar nuestro equipo porque se ha quedado totalmente bloqueado. Antes de pulsar el botón de apagado por hardware y provocar un apagado indebido, deberemos tener en cuenta que existe un mecanismo de emergencia que nos permitirá salir dignamente y reiniciar nuestra máquina de la mejor manera.


Para ello debermos pulsar la secuencia de teclas REISUB manteniendo pulsadas al mismo tiempo las teclas ALT e IMPRIMIR-PANTALLA (en muchos portátiles se requiera de una tecla adicional, la tecla de Función, para activar el IMPRIMIR-PANTALLA). Esta combinación de 6 teclas tiene su efecto en teclados QWERTY, siendo el siguiente:


  • R lo que hace es dar el control de manera exclusiva al teclado de la máquina.
  • E enviará una señal a todas las aplicaciones, digamos, “pidiendo amablemente” que se cierren.
  • I envía una señal de finalización inmediata, sin esperar a que reaccionen.
  • S sincronizará los cambios en los sistemas de ficheros que estén montados en ese momento.
  • U desmontará todos los sistemas de ficheros.
  • B reiniciará la máquina, exactamente igual que si pulsáramos en este momento el botón de nuestra máquina. Llegados a este punto también podemos elegir utilizar la letra “O” para apagar la máquina.