Terminal
La Terminal o Consola de línea de comandos es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple u orden. Lo opuesto sería la interfaz gráfica o Entorno de escritorio, que es lo que mayoría de usuarios ya conocen: un conjunto de menúes y ventanas que se utiliza desde el mouse. GNU/Linux además de tener múltiples entornos de escritorios para que el usuario elija, mantuvo en un lugar la Terminal.
Conocer cómo usar la terminal puede ayudarte a hacer algunas tareas de un modo mucho más rápido y fácil, por más que al principio te parezca algo muy técnico. Además muchas veces las instrucciones que puedas ver en foros en Internet sobre GNU/Linux van a incluir hacer tareas en consola o Terminal.
Sumario
Primeros pasos
Para acceder a la Terminal hay que ir a Menú Huayra/Accesorios y hacer clic en Terminal. También puede accederse con Ctrl+Alt+T.
Lo primero que vas a ver al abrir la Terminal es un indicador de línea de órdenes (en inglés se utiliza la palabra prompt o "prontuario" que se puede definir como ayuda visual o palabra que ayuda) esperando que el usuario introduzca una orden.
Así es como aparece en general una vista de la terminal
usuario@equipo:directorio actual$
En el caso de una computadora de Huayra con las configuraciones por defecto sería así
alumno@huayra:~$
- alumno
- Alumno es el usuario que viene configurado por defecto en Huayra. Create tu propio usuario.
- huayra
- Es el nombre de la netbook que por defecto viene configurado. Cambia el nombre de tu netbook.
- ~
- El carácter ~ que ves en lugar "directorio actual" indica que estás en el directorio /home/alumno. Es una especie de abreviatura.
- $
- Este signo indica que el usuario que ejecuta el comando tiene permisos de un usuario normal. Cuando en su lugar ves un # es porque ese usuario tiene permisos de root, que en ingles significa raíz y es el usuario con todos los permisos. Para ver más sobre permisos de los usuarios y el nombre del equipo andá a Usuarios y sesiones.
- Te crees tu propio usuario, con su propia contraseña
- Cambies la contraseña de root.
- Cambies el nombre de tu netbook
Otra forma de acceder a la terminal es salirse del Entorno de escritorio y acceder a un entorno completamente en modo texto. Para esto último debemos teclear Control+Alt+F1. Los sistemas GNU/Linux proporcionan por defecto seis terminales de este tipo, de Control+Alt+F1 a Control+Alt+F6. Si queremos volver al modo gráfico lo hacemos con Alt+F8. Este es el modo texto puro, tal cual eran los sistemas operativos antes de utilizar interfaces gráficas. Por lo tanto, en realidad cuando abrís la terminal desde el entorno de escritorio en realidad estas usando una aplicación de MATE que es un emulador de la terminal dentro de una interfaz visual.
Estructura de los Comandos
Dijimos que la Terminal te permite darle órdenes al sistema pero no a través de los menúes gráficos, sino usando ordenes o comandos. Sin embargo éstos no pueden escribirse en un orden caprichoso, sino que tienen que seguir reglas, una estructura, o sea una sintaxis. Igual que cualquier otro idioma tiene sus reglas. Si en castellano desordenás las palabras sin respetar el órden de la sintaxis que tanto se estudia en la escuela, no vas a entender nada. La perro del Juan traé cadena" es una orden que difícilmente pueda cumplir Juan, a quién le piden que traiga la cadena del perro. Del mismo modo, si ingresás en la terminal computadora apagate no va a pasar nada.
Por eso existe una sintaxis o estructura de los comandos que el sistema operativo puede comprender. Más adelante enumeramos el listado de comandos que más vas a usar, así como también tareas que son recomendables realizar a través de la consola y no del entorno gráfico.
En una orden simple, la primera palabra indica la orden a ser ejecutada y las palabras restantes se pasan como opciones' o parámetros y argumentos de la orden:
$ orden [ opciones ] [ argumentos ]
Las opciones son diferentes posibilidades de usar el comando. Se ingresan usando -- antes de la opción, o un solo - antes de la abreviatura de la opción, que puede ser la primer letra o las primeras dos.
Veamos, por ejemplo, las opciones del comando ls que se usa para ver una lista archivos y directorios de la posición que actualmente se encuentra el usuario.
$ ls Me lista los archivos $ ls --size Me lista los archivos ordenados por tamaño $ ls -s Me lista los archivos ordenados por tamaño
Flecha Arriba Usando la flecha hacia arriba la Terminal vuelve a mostrarte el último de los comandos ejecutados. Esto es muy útil para cuando cometiste un error de tipeo, en lugar de volver a escribir todo, apretá la flecha hacia arriba y corregí el error moviéndote con las flechas izquierda y derecha.
Tecla Tab Con Tab podés autocompletar algunos comandos o nombres de archivos que resulten largo cuando el reemplazo sea obvio y no haya dos alternativas. Cuando Tab no resuelve porque puede haber más de una alternativa, apretarla dos veces te va a mostrar una lista de posibilidades debajo.
Los argumentos son los archivos o directorios sobre los cuales se aplica el comando. Por ejemplo podés verlo en el comando mkdir que significa Make Directory y sirve para crear directorios. El mismo necesita un argumento que es el nombre del directorio que se va a crear:
$ mkdir directorio Me crea un directorio que se llama "directorio"
En este caso directorio es un argumento no una opción. Podés verlo más claro con la siguiente situación.
$ mkdir directorio 2
Esta orden con el comando tal cual figura arriba no crea un directorio que se llame directorio 2, por el uso de espacios en los comandos. Si le agregás al comando y su argumento la opción --verbose entonces vas a ver que en realidad se crean dos directorios llamados directorio y 2 por el mensaje que arroja. La opción --verbose ejecuta ese comando mostrando un mensaje luego de cada operación.
$ mkdir -v directorio 2
Muestra en la terminal:
mkdir: se ha creado el directorio «directorio» mkdir: se ha creado el directorio «2»
También acordate de que tanto para archivos, ficheros, órdenes y opciones de órdenes, las mayúsculas son determinantes, no es lo mismo poner Directorio que directorio.
El uso de espacios en los comandos
Al escribir $ mkdir directorio 2 no se crea un directorio de nombre directorio 2 sino dos directorios directorio y 2. Esto pasa porque en la sintaxis de los comandos, el espacio es lo que separa comandos de opciones y de argumentos. Por eso para crear un directorio que se llame directorio 2 hay que ingresar el comando usando comillas dobles del siguiente modo:
$ mkdir "directorio 2"
O en todo caso, reemplazar el espacio por los guiones - o _ del siguiente modo:
$ mkdir "directorio_2"
Si se trata de directorios o archivos que se van a utilizar frecuentemente desde Terminal conviene que no tengan espacios por el manejo que hace aquella de los mismos.
Manuales y ayuda para cada comando
¿Pero cómo hacés para acordarte de todos estos comandos con sus opciones, parámetros y la sintaxis correcta?
No desesperes. La mayoría de las órdenes disponen de una ayuda en forma de manual donde muestra la sintaxis para usar el comando, con sus opciones explicadas brevemente. Para acceder a este tipo de ayuda basta con introducir en la terminal:
$ man orden
Por ejemplo:
$ man ls
Devuelve el manual de ayuda para el comando ls que lista los directorios y archivos de la ubicación actual. Para salir de los manuales de ayuda hay que presionar la tecla Q
Otra opción es introducir el comando y la opción --help que todo comando debe tener
$ orden --help
Por ejemplo:
$ ls --help
Devuelve el manual abreviado de ayuda para el comando ls.
En general; si no se ha trabajado mucho con una orden, es muy conveniente leer la página del manual antes de ejecutarla.
Así se ve un manual de ayuda del comando ls al correrlo con la opción --help
Modo de empleo: ls [OPCIÓN]... [FICHERO]... Muestra la sintaxis del comando, que en general sigue la sintaxis general $ orden [ opciones ] [ parámetros ] Muestra información acerca de los FICHEROs (del directorio actual por defecto). Explica el funcionamiento del comando Ordena las entradas alfabéticamente si no se especifica ninguna de las opciones -cftuvSUX ni --sort. Los argumentos obligatorios para las opciones largas son también obligatorios Este es el listado de opciones del comando para las opciones cortas. -a, --all no oculta las entradas que comienzan con . Muestra la opción breve con -, la opción compelta con -- y la descripción -A, --almost-all no muestra las entradas . y .. implícitas --author con -l, imprime el autor de cada fichero -b, --escape imprime escapes en estilo C para los caracteres no gráficos
Permisos en la Terminal: su
y sudo
Como explicamos en otras secciones, Huayra funciona con usuarios múltiples, cada uno con diferentes permisos, que le permiten o no hacer determinadas tareas. Desde la Terminal se pueden realizar todas las tareas usando dos comandos: su
y sudo
- $ su
- Al ingresar en consola simplemente
su
y luego Enter lo que hacés es directamente loguarte con el usuario root que tiene todos los permisos. Para esto va a pedir la contraseña de ese usuario. A partir de ese momento vas a poder realizar todas las tareas, ya que ese usuario tiene todos los permisos. A partir de entonces el aspecto del prompt de la Terminal va a cambiar, tal como indicamos más arriba, a lo siguiente:
root@equipo:directorio actual#
- $ sudo
- Este comando significa Super User DO, es decir nos mantiene logueados con el mismo usuario que creaste pero te permite que la instrucción que siga la ejecutes con permisos de administrador. Para esto es necesario que en la configuración de Usuarios y sesiones el usuario tenga Tipo de cuenta:Administrador y esté en el grupo sudo
Tareas simplificadas por usar la Terminal
Actualizar
Actualizar Huayra es uno de los ejemplos más claros de una tarea que si la hacés por Terminal te va a resultar mucho más fácil y rápido.
- Buscá las actualizaciones disponibles en los repositorios, tipeando:
$ sudo apt-get update
- Aplicá las actualizaciones, tipeando:
$ sudo apt-get upgrade
- Sólo queda confirmar las actualizaciones con presionando S.
Instalar
Desde Terminal es muy fácil instalar una aplicación. Solo hay que saber el nombre del paquete de la aplicación que se quiere instalar y tipear:
$ sudo apt-get install nombre_del_paquete
Por ejemplo si quisieses instalar el navegador web Chromium deberías ingresar:
$ sudo apt-get install chromium
El nombre del paquete casi siempre coincide con el nombre de la aplicación. En caso de no ser así, podés buscar qué nombre tiene el paquete de la aplicación en los repositorios de Debian usando el Centro de Software o el Gestor de paquetes Synaptic.
Administrar permisos de directorios y archivos
Como podés ver en la sección Permisos, para poder abrir o ejecutar algunos directorios y archivos, hay que tener permisos especiales de root. Un ejemplo de esos directorios es /usr/share/cdpedia
donde se guardan los datos de la CDPedia, la aplicación para ver contenido de la Wikipedia offline. Las netbooks que vienen con Huayra instalado ya traen los datos de la CDPedia, pero aún así podés bajarte los datos para tenerlos actualizados.
Para poder hacerlo tenés que descargar esos datos comprimidos en tar.gz y descomprimirlos en el directorio /usr/share/cdpedia
. Pero para modificar este directorio tenés que tener permisos especiales. Por eso si lo abrís directamente desde la interfaz gráfica no te va a dejar modificar nada.
Por eso te conviene usar la Terminal. Siguiendo la estructura de los comandos podés indicarle a Huayra que habrá con permisos de super usuario ese directorio usando Caja, el visor de directorios. La instrucción es la siguiente:
$ sudo caja /usr/share/cdpedia
Ahora vas a poder copiar contenido dentro de esa carpeta usando la interfaz gráfica. También todas estas actividades se pueden hacer usando los comandos de la Terminal que se listan más abajo.
También podés cambiar los permisos que tiene un directorio usando el comando chmod
. Para más información: Permisos
"Matar" aplicaciones
Huayra tiene la enorme ventaja de que si una aplicación se cuelga no te hace imposible usar el resto del sistema, teniendo que reiniciar todo. Solamente tenes que "matarla" y el resto va a seguir funcionando como si nada hubiese pasado.
Para "matar" aplicaciones podés hacerlo desde el entorno gráfico o desde la Terminal. En este caso vas a necesitar saber el ID del proceso (PID) o el comando del programa. Para saber esto ingresá en una terminal
$ top
Una vez que sepas los PID o comandos podés "matar" aplicaciones usando uno o el otro con diferentes comandos
Usando el comando del programa
$ killall [ comando del programa ] $ killall -KILL [ comando del programa ]
Por ejemplo $ killall chromium
Usando PID
$ kill PID $ kill -KILL PID
Por ejemplo $ kill -kill 3250
Al usar el argumento -kill la aplicación se va a cerrar sin intentar guardar nada ni terminar ningún proceso intermedio que haya quedado. Se va a cerrar en el punto exacto en el que estaba al momento de introducir el comando
Listado de comandos más comunes
- Cambiar el directorio de trabajo (change directory):
$ cd <opciones> <ruta>
- Listar el contenido de directorios (list):
$ ls <opciones> <ficheros>
- Crear un directorio (make directory):
$ mkdir <opciones> <nombre del directorio>
- Borrar un directorio (remove directory):
$ rmdir <opciones> <nombre del directorio>
- Copiar un archivo o directorio en el directorio especificado (copy):
$ cp <opciones> <archivo> <ruta>
- Mover un archivo o directorio a un archivo o directorio. Se utiliza también para renombrar; el origen y destino es un archivo (move):
$ mv <opciones> <archivo> <ruta>
- Borrar archivos o directorios (remove):
$ rm <opciones> <archivo>
- Si un directorio no está vacío no es posible borrarlo con la orden rmdir. La orden rm nos lo permite con la opción –R borrando el contenido del directorio especificado y todos sus subdirectorios de forma
recursiva (ver su página del manual).
Hay que tener mucho cuidado con la orden:
$ rm -R <directorio>
Ya que borra todos los archivos y directorios dentro del directorio a borrar.
- Mostrar por pantalla el contenido de los archivos por la salida estándar. Si no se especifica ningún archivo, la orden repite todo lo que se ha escrito por la entrada estándar. Para indicar que se ha acabado de escribir hay que pulsar CTRL+D.
$ cat <opciones> <archivos>
- Buscar archivos recorriendo árboles de directorios especificados por las rutas, evaluando de izquierda a derecha las condiciones de búsqueda. Además se pueden especificar acciones sobre los resultados obtenidos:
$ find <ruta(s)> <condición(es) de búsqueda> <acciones>
- Mostrar el nombre del directorio en el que uno se encuentra situado (print working directory). Se dice que ese directorio es el directorio de trabajo:
$ pwd <opciones>
Copiar y pegar en una terminal
Mientras que en cualquier lugar Ctrl + C es copiar y Ctrl + V es pegar, en la Terminal hay que agregarle la tecla Shift. Ctrl+C termina el proceso que actualmente está corriendo la Terminal, por eso se buscó una alternativa.
Ctrl + Shift + C es copiar Ctrl + Shift + V es pegar
Hacé hablar a la vaca de Huayra
$ cowsay hola soy la vaca de Huayra