DAEP Comandos básicos

De Gleducar, http://www.gleducar.org.ar

Yes check.svg Esta página fue revisada y cumple los estándares de Gleduwiki.

Contenido

Interfaz gráfica vs. Interfaz de texto

¿Qué es la interfaz gráfica

La GUI es la Interfaz Gráfica de Usuario. En pocas palabras y para no empesar con detalles técnicos innecesarios es un sistema denominado Xserver que nos muestra los procesos, programas, archivos en forma agradable e intuitiva y no en formato de texto.

Cuando tenemos el Servidor X en funcionamiento se dice que tenemos las X's levantadas. A diferencia de otros sistemas operativos este servidor es un programa mas y no está ligado al mismo, lo que significa que puede o no estar instalado.

Cierto programas requieren del servidor X para su funcionamiento como por ejemplo el OpenOffice.org. Hay programas que pueden ser utilizados sin GUI pero ya quedaron en desuso o no poseen las herramientas necesarias para estar actualizados.

Anteriormente teniamos el PROMPT y era lo único que observavamos hasta que ejecutaramos un programa o utilizaramos un comando. Con la GUI esto cambia ya que veremos ventanas, menús, íconos, etc.

Nuestro periférico mas utilizado va a ser el Mouse porque con el es que iremos navegando por las ventanas.

Realizar doble-click para abrir una carpeta, ejecutar un programa o abrir un archivo.

¿Qué es una terminal?

Una terminal es una forma de acceder al sistema sin utilizar la interfaz gráfica, es decir, realizar todo tipo de tareas en formato texto. La forma de utilizar el sistema de este modo es mediante comandos a diferencia del otro modo que utilizamos íconos, gráficos, etc para usarlo.

¿Qué podemos realizar desde una terminal?

Podemos realizar cualquier tipo de tarea, como copiar, mover, eliminar archivos o cualquier tarea de administración del sistema. No hay que olvidarse que la GUI es solo una "máscara" para las terminales, debido a que toda acción en el servidor gráfico es una acción en la terminal, pero algunas tareas que se pueden en una terminal no se pueden realizar en forma gráfica.

Terminal

Escritorios (Interfaz Gráfica)

Bien, en Linux hay bastantes interfaces gráficas, estas están separadas del sistema operativo, porque, recordemos, que Linux es un clon de Unix, y Unix es bastante anterior a las interfaces gráficas, con lo cual, el sistema operativo es totalmente independiente de la interfaz y de ahí que existan distintas interfaces para un mismo objetivo común -> hacer de Linux un sistema mas agradable, productivo y fácil de llevar con simples click's de ratón.

Como comentábamos antes, de escritorios hay muchos, desde el Gnome o KDE (que comentaremos mas palante), pasando por Windows Maker, Fvwm, Enlightenment ... pero a todos les une una característica principal... Todos usan al servidor X Window para funcionar.

A finales de los 80, principios de los 90, el mundo Unix estuvo dominado por un solo escritorio, el CDE (Common Desktop Environment). El CDE utilizaba el conjunto de widgets de Motif. Pero...

¿qué son los widgets?
los widgets son una colección de herramientas de programación de alto nivel (por ejemplo, botones, cajas de texto, menús ...) con los que se construyen los programas. Sin embargo, no existe un conjunto de widgets estándar para X. Y cada proyecto de escritorio utilizará el conjunto de widgets que considere más adecuado.

Bien, sigamos, el CDE usaba el conjunto de widgets de Motif, pero esto presentaba un problema, tanto estos widgets de Motif, como el CDE eran bastante caros, y eso no tenia cabida en Linux..

Dado este problema un grupo de programadores lanzaron un proyecto, el K Desktop Environment (KDE).

KDE

KDE iniciado

Bien, el KDE está basado en los widgets Qt de Troll Tech (una pequeña empresa noruega). Es un conjunto de herramientas, muy útil y escrito en C++. Pero Qt no era un producto 100 % gratuito y código abierto. Por este motivo un grupo de programadores disidentes empezaron con el proyecto rival, Gnome.

Actualmente KDE ha crecido mucho y con los cambios de licenciamiento de QT se han quitado los escollos iniciales.

En gran parte de la comunidad más conservadora de Linux, se tiende a tirar mas para Gnome, por la antigua costumbre a que este era totalmente Fuente Abierta y KDE no.

Pero lo que es cierto, es que KDE es un increible escritorio y muy estable.

Por último, KDE está subvencionado por SuSe y otras empresas, y mantenido en la actualidad por cientos de programadores extendidos por todo el mundo, lo que garantiza aún más su confiabilidad y estabilidad.

GNOME

GNOME

Gnome está basado en los widgets de GTK, e incluso, extendieron este conjunto, GTK+. Estos, si son totalmente GNU.

Gnome es el acrónimo de 'GNU Network Object Model Environment', quiere decir 'entorno de trabajo en red orientado a objetos'. No tiene una suite de oficina como tal, eso si, tiene un montón de programas integrados. Además, permite utilizar aplicaciones de terceros como, aplicaciones de KDE, y otras aplicaciones y utilidades instaladas en su sistema.

Por último, Gnome está subvencionado por Helix Code (la empresa que han formado los impulsores del proyecto), y también está mantenido por cientos de programadores extendidos por todo el mundo.

¿Qué son las consolas en Linux?

La consola del sistema es el monitor y el teclado conectados directamente al sistema, (debido a que Linux es un sistema operativo multiusuario, puede tener otros terminales conectados a los puertos serie de su sistema, pero éstos no constituirán la consola). Linux, como otras versiones de UNIX, facilita el acceso a consolas virtuales (o VCs), que le permiten tener más de una sesión en la consola a la vez.

Intérpretes de comandos

El interprete de comandos es el programa que recibe lo que se escribe en la terminal y lo convierte en instrucciones para el sistema operativo.

En otras palabras el objetivo de cualquier intérprete de comandos es ejecutar los programas que el usuario introduce en el prompt. Cuando el usuario escribe una orden, el intérprete ejecuta dicha orden. En dicha orden, puede haber programas internos o externos: Los programas internos son aquellos que vienen incorporados en el propio intérprete, mientras que los externos son programas separados (ej: aplicaciones de /bin,/usr/bin,...).

BASH

¿Qué es BASH?
Descendiente del Bourne Shell, bash es un producto GNU, el Bourne Again Shell. Es el interfaz estándar de línea de comandos en la mayoría de las máquinas LiNUX. Potencia la interactividad, soportando edición en línea de comando, capacidad de completar o recordar automáticamente un comando, etc. También soporta prompts configurables - la mayoría de la gente se da cuenta de esto, pero no saben hasta qué punto.
¿Para qué se usa?
BASH, al igual que todos los interpretes de comandos, es la herramienta con la que interactuamos en el "modo consola". La forma que interactuamos con la consola está determinada por el interprete que usemos. BASH es muy común en sistemas del tipo GNU/Linux y existe gran documetación sobre el mismo.
¿Qué es el prompt?
El prompt es lo siguiente que vemos al entrar al sistema, una linea desde donde el sistema nos indica que esta listo para recibir ordenes, que puede ser tan sencilla como:
$

ó algo más normal de encontrar es algo como:

[root@Eternauta ~]#

El prompt puede ser modificado a gusto y es sumamente flexible (quienes quieran prufundizar y conocer más sobre las posibilidades pueden leer este articulo. De todas formas no bastará con tenes unas mínimas nociones sobre la información que nos brinda el prompt.

Generalmente nos indica el usuario con el que estamos trabajando, el nombre de nuestra maquina y el directorio sobre el que nos encontramos trabajando, generalmente con esta estructura:

[usuario@maquina directorio]

Al final de la línea del prompt podemos ver un $ (signo de moneda) o un # (numeral), el $ indica que el usuario con el que estamos trabajando tiene persmisos de usuario simple (o no privilegiado), el # indica que estamos trabajando como superusuario o root (usuario privilegiado). Estos temas seran profundizados al ver el tema de usuarios y permisos, pero podemos adelantar que un usuario simple tiene capacidades limitadas sobre el sistema y el superusaurio no, ya que este es el administrador del sistema.

NOTA OBLIGADA: se recomienda no usar el usuario root para el trabajo diario, solo recurrir a él cuando se necesitan realizar tareas que requieran estrictamente de su uso. Cualquier tarea realizada por el superusuario no tiene limitaciones de permisos de seguridad, por lo que si no sabemos bien lo que hacemos nuestro sistema puede resultar alterado.

Definiciones:

Comandos
Son archivos ejecutables. Para que la shell localice el comando, deberá estar en un subdirectorio que forme parte de la variable PATH o de lo contrario debe especificarse la ruta completa. Por ejemplo, el comando man, ya está en un directorio contenido en la variable PATH; en cambio si nosotros creamos un script que automáticamente hará una copia de respaldo de determinados datos y ese script está en nuestro directorio personal, deberíamos escribir la ruta completa. Estos ejemplos se verían así:
man ls

Esto muestra el manual del comando ls. No requiere ponerle el path.

~/backup

Indica que se ejecute backup (el script que yo mismo hice), que está en mi directorio personal (el del usuario que estoy usando). También se puede expresar con el path completo de la siguiente forma:

/home/miusuario/backup

O, si estamos en el directorio donde se encuentra el script (el punto inicial representa el directorio actual):

./backup
Opciones
Generalmente las opciones de un comando son letras precedidas de un signo -. En algunos comandos se pueden poner varias opciones como varias letras seguidas precedidas del signo -. Algunas opciones pueden venir también como --<opcion> y concretamente en Linux es muy frecuente poder usar las opciones --help y --version en casi todos los comandos.
Precisamente con la opción --help obtendremos generalmente la lista de opciones disponibles para un comando.
También es frecuente el uso de opciones precedidas por +. En algunos comandos el orden de las opciones es muy significativo. No merece la pena hablar más de esto ahora porque vamos a usar un montón de comandos con un montón de opciones en este curso y tendremos ocasión de practicar mucho con ellas.
$ uname --help
Modo de empleo: uname [OPCIÓN]...
Muestra cierta información del sistema. Sin ninguna OPCIÓN, igual que -s.

  -a, --all        muestra toda la información
  -s, --sysname    muestra el nombre del sistema operativo
  -n, --nodename   muestra el nombre de `host' del nodo de red de la máquina
  -r, --release    muestra la distribución del sistema operativo
  -v                       muestra la versión del sistema operativo
  -m, --machine            muestra el tipo de máquina (hardware)
  -p, --processor          muestra el tipo de procesador
  -i, --hardware-platfrom  muestra la plataforma de hardware
  -o, --operating-system   muestra el sistema operativo
      --help     muestra esta ayuda y finaliza
      --version  informa de la versión y finaliza

Comunicar bichos a <bug-coreutils@gnu.org>.
Meta-caracteres 
Tienen un significado especial para la shell, por lo que no se pueden utilizar indiscriminadamente y son uno de los siguientes:
 ; & ( ) | > > <espacio> <tab>
Argumentos
Son literales tomados como parámetros de entrada para algún comando. Por ejemplo, en el script backup que dimos anteriormente, podemos decirle al ejecutar qué directorio queremos respaldar, sería algo así:
~/backup /home/miusuario/Documentos/
Nótese que el espacio, como metacaracter, es un separador que el Bash interpreta como que lo que sigue es el primer argumento. Si dejáramos otro espacio y pusieramos otra cosa, podríamos pasarle al backup otra especificación de lo que debe hacer.

Variables de entorno

Las variables de entorno, como su nombre indica son variables, pueden ser diferentes para cada usuario, y permiten personalizar el entorno Linux a gusto del usuario.

Por lo general, parece que por convenio, en Linux las variables de entorno se escriben en mayúsculas (no hay nada que impida que vayan en minúsculas, salvo evitar confusiones con comandos). Las llamadas a las variables de entorno se realizan anteponiendo el signo "$" al nombre de la variable ($HOME, $PS1, etc.). Las variables de entorno no pueden contener el carácter "$" ni espacios, salvo en el valor, siempre y cuando este se presente entrecomillado.

En Linux existen unas variables de entorno básicas, que son necesarias para que el usuario pueda trabajar adecuadamente. Además, tanto el propio usuario como algunos programas que este ejecute, pueden generar nuevas variables de entorno. Podemos así distinguir entre variables de entorno generales y variables de entorno particulares.

Manejo dentro de BASH

A continuación se enumerarán una serie combinaciones de teclado y botonoes con sus respectivas funcionos al trabajar en BSH:

  • [Ctrl] + [Alt] + [Delete] = Finaliza el sistema y reinicia el equipo.
Finaliza todos los procesos del sistema y reinicia su computadora, se usa unicamnete cuando el sistema de apagado normal no funciona
  • [Alt] [Ctrl] + [Alt] + [Fn] = cambiar de una pantalla a otra.
Con [Ctrl]+[Alt] + una tecla de función ([F1] - [F7]), se muestra una pantalla nueva. Las teclas de función de F1 a F6 son para pantallas de texto (consola) y la tecla F7 es para la pantalla gráfica.
  • [Alt] + [Tab] = cambiar de tarea.
Si tiene abiertas varias aplicaciones a la vez, puede utilizar esta combinación de teclas [Alt] + [Tab] para cambiar entre las distintas tareas.
  • [Ctrl] + [a] = mueve el cursor al principio de la línea.
Funciona en muchos editores de texto y en el campo de URL de Mozilla.
  • [Ctrl] + [d] = Cierra la consola.
Desconectar de un terminal o una consola, en lugar de escribir exit o logout.
  • [Ctrl] + [e] = mueve el cursor al final de la línea.
  • [Ctrl] + [l] = limpia el terminal.
Este atajo de teclado hace lo mismo que teclear clear en la línea de comando.
  • [Ctrl] + [u] = Limpia la línea actual.
Si está trabajando en un terminal, use esta combinación de teclas para limpiar la línea actual desde el cursor hasta el final de la línea.
  • [Botón Medio del Ratón] = pegar el texto resaltado.
Utilice el botón izquierdo del ratón para resaltar un determinado texto. Sitúe el cursor en el lugar en el que desee pegar la información. Haga clic en el botón medio del ratón para pegar la información.
  • [Tab] = autocompletar comando.
Utilice esta tecla si trabaja en un terminal. Escriba los primeros caracteres de un comando y, a continuación, pulse la tecla [Tab]. Con esta acción, se completará automáticamente el comando o se mostrarán todos los comandos que contienen los caracteres que haya escrito.
  • Flechas de [Arriba] y [Abajo] = mostrar historial de comandos.
Mientras trabaja en un terminal, pulse la [flecha arriba] o la [flecha abajo] para ver un historial de los comandos que ha escrito en el directorio actual. Cuando vea el comando que desea utilizar, pulse la tecla [Intro].

Como entender las páginas del manual

Las paginas de manual en linea de Linux pueden ser consultadas con el comando man. Por ejemplo, para consultar la página de manual del comando ls haríamos:

$ man ls

Unos instantes después estaremos viendo la página en nuestro monitor. La forma de visualizar las paginas dependerá del programa de filtrado que estemos utilizando:

  • Si nuestro sistema usa el programa less para ver estas páginas, podremos desplazar el texto arriba y abajo utilizando los cursores. Además estarán disponibles todas las funcionalidades de more.
  • Si se trata de more, avanzaremos una página con la barra espaciadora y retrocederemos una página con la B. En la mayoría de los sistemas también deberían funcionar AvPag y RePag si nuestro teclado esta correctamente configurado. Para salir hay que pulsar la Q.

Las páginas se estructuran en secciones, que pueden ser consultadas utilizando el modificador -S. Las secciones estándar son las siguientes:

  1. Programas ejecutables o comandos de shell
  2. Llamadas del sistema (funciones suministradas por el kernel)
  3. Llamadas de librerías (funciones dentro de las librerías del sistema)
  4. archivos especiales (normalmente los que están en /dev)
  5. Formatos de archivo y convenciones. Por ejemplo /etc/passwd
  6. Juegos
  7. Macro paquetes y convenciones. Por ejemplo man(7), groff(7)
  8. Comandos de administración del sistema (normalmente solo para el root)
  9. Rutinas del kernel [No estándar]

Esto es útil cuando el mismo comando esta disponible en varias secciones.

Si nos interesa ver la descripción de un comando en todas las secciones del manual, tenemos el modificador -a:

$ man -a comando

Además de las páginas del manual completas, existen descripciones cortas de los comandos y dos modos de consultarlas:

$ man -f comando

Muestra todas las descripciones cortas del comando para todas las secciones del manual

$ man -k palabra

o

$ apropos palabra

Muestra todas las descripciones cortas de aquellos comandos que en su descripción incluyan la palabra especificada.

Esto ultimo puede ser de gran utilidad si no sabemos exactamente el nombre de un comando determinado y queremos "probar suerte".

Estas descripciones están almacenadas en una base de datos especial del sistema. Si hemos actualizado las paginas de manual recientemente (instalando nuevas páginas o borrando alguna existente), podemos actualizar la base de datos ejecutando:

$mandb

Si lo que queremos es obtener una copia impresa de la pagina de manual, podemos hacerlo así:

$ man comando | col -b | lpr

Esto se entiende como: El man muestra el manual del comando al programa col, que una vez ordenado el texto en una columna justificada, se lo envía a la impresora (lpr).

Si en nuestro sistema se encuentran instaladas páginas de man en castellano, podremos leerlas especificando el lenguaje en una variable de entorno especial:

$ export LANG=es

Esto solo hay que hacerlo una vez por sesión o ponerlo en un script que se ejecute en cada arranque.

Por ultimo, decir a los curiosos que las páginas de manual se encuentran en el directorio /usr/man organizadas por secciones y normalmente comprimidas con gzip. Podemos leerlas directamente con zless, pero están en formato groff y no será una experiencia demasiado agradable.



Volver a Contenidos de la capacitación técnica 2006
Copyright © 2002-2010 Asociación Civil Gleducar
Todo los contenidos de este sitio se encuentran bajo una licencia libre del tipo Copyleft
Este sitio ha sido desarrollado usando Software Libre y respeta los estándares web.
Además ha sido diseñado para verse correctamente usando cualquier navegador, en cualquier resolución de pantalla.