Diferencia entre revisiones de «Terminal»

De Huayra
Saltar a: navegación, buscar
(Manuales y ayuda para cada comando)
 
(No se muestran 76 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
  
La Terminal o Consola 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 [[Entorno de escritorio|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.  
+
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 [[Entorno de escritorio|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.  
  
 +
[[Archivo:terminal1.png|thumb|600px|Terminal|center]]
 +
 +
{{Mbox|
 +
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.
 +
|class=tip}}
  
 
==Primeros pasos==
 
==Primeros pasos==
Línea 7: Línea 12:
 
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''.  
 
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). Este indicador finaliza generalmente por un caracter $, cuando sos un usuario normal, o # cuando sos un súper usuario (administrador) Para ver más sobre permisos de los usuarios y el nombre del equipo andá a [[Usuarios y sesiones]].  
+
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
 
Así es como aparece en general una vista de la terminal
Línea 18: Línea 23:
  
 
{{Mbox|
 
{{Mbox|
El carácter ~ que ves en lugar del "directorio actual" indica que estás en el directorio /home/alumno. Es una especie de abreviatura.
+
;alumno
|class=tip}}
+
: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]].  
 +
|class=note}}
 +
 
 +
 
 +
{{Mbox| Es muy importante que:<br>
 +
*Te crees tu propio usuario, con su propia contraseña
 +
*Cambies la contraseña de root.
 +
*Cambies el nombre de tu netbook
 +
|class=warning}}
 +
 
  
 
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.
 
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.
Línea 29: Línea 49:
 
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 de escritorio|entorno gráfico]].
 
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 de escritorio|entorno gráfico]].
  
En una orden simple, la primera palabra indica la orden a ser ejecutada y las palabras restantes se pasan como '''opciones''' y '''parámetros''' de la orden:
+
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 ] [ parámetros ]
+
  $ 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.
 
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.
Línea 41: Línea 61:
 
  $ ls -s                    ''Me lista los archivos ordenados por tamaño''
 
  $ ls -s                    ''Me lista los archivos ordenados por tamaño''
 
   
 
   
 +
{{Mbox|
 +
'''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.
  
Los '''parámetros''' 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 parámetro que es el nombre del directorio que se va a crear:
+
'''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.
 +
|class=tip}}
 +
 
 +
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"
 
  $ mkdir directorio        ''Me crea un directorio que se llama ''"directorio"
  
En este caso ''directorio'' es un '''parámetro''' no una '''opción'''. Podés verlo más claro con la siguiente situación.  
+
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
 
  $ 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 parámetro 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.
+
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
 
  $ mkdir -v directorio 2
Línea 68: Línea 95:
 
===El uso de espacios en los comandos===
 
===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 '''parámetros'''. Por eso para crear un directorio que se llame ''directorio 2'' hay que ingresar el comando usando comillas dobles del siguiente modo:
+
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"
 
  $ mkdir "directorio 2"
Línea 79: Línea 106:
 
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.
 
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.
 
|class=important}}
 
|class=important}}
 +
  
 
==Manuales y ayuda para cada comando==
 
==Manuales y ayuda para cada comando==
Línea 109: Línea 137:
 
|class=tip}}
 
|class=tip}}
  
Así se ve un  
+
Así se ve un manual de ayuda del comando ''ls'' al correrlo con la opción ''--help''
  
  Modo de empleo: ls [OPCIÓN]... [FICHERO]...                                            Esto muestra la sintaxis del comando, que en general sigue la sintaxis general
+
  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).
+
  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
 
  Ordena las entradas alfabéticamente si no se especifica ninguna de las
 
  opciones -cftuvSUX ni --sort.
 
  opciones -cftuvSUX ni --sort.
 
+
  Los argumentos obligatorios para las opciones largas son también obligatorios         '''Este es el listado de opciones del comando'''
  Los argumentos obligatorios para las opciones largas son también obligatorios
 
 
  para las opciones cortas.
 
  para las opciones cortas.
   -a, --all                  no oculta las entradas que comienzan con .
+
   -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
 
   -A, --almost-all          no muestra las entradas . y .. implícitas
 
       --author              con -l, imprime el autor de cada fichero
 
       --author              con -l, imprime el autor de cada fichero
Línea 124: Línea 151:
 
                             gráficos
 
                             gráficos
  
== Comandos más comunes==
+
== [[Permisos]] en la Terminal: <code>su</code> y <code>sudo</code> ==
 +
 
 +
Como explicamos en otras secciones, Huayra funciona con [[Usuarios y sesiones|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: <code>su</code> y <code>sudo</code>
 +
 
 +
;$ su
 +
: Al ingresar en consola simplemente <code>su</code> 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 '''''S'''uper '''U'''ser '''DO''''', es decir nos mantiene logueados con el mismo usuario que creaste pero te permite que la instrucción que siga la ejecutes con [[Usuarios_y_sesiones#.C2.BFQu.C3.A9_son_los_.22Privilegios_de_administrador.22.3F|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 [[¿Cómo_instalar/desinstalar_aplicaciones_en_Huayra%3F|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
 +
 
 +
{{Mbox|
 +
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]].
 +
|class=tip}}
 +
 
 +
=== 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 <code>/usr/share/cdpedia</code> 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 [[Archivos_y_Carpetas#Comprimir_y_descomprimir_archivos_o_carpetas|descomprimirlos]] en el directorio <code>/usr/share/cdpedia</code>. 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 <code>chmod</code>. 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.
  
Navegación e interacción con ficheros
+
Para "matar" aplicaciones podés hacerlo desde el [["Matar"_aplicaciones|entorno gráfico]] o desde la Terminal. En este caso vas a necesitar saber el ID del proceso (PID) o el [[Lanzadores#Comandos|comando del programa]]. Para saber esto ingresá en una terminal
Cambiar el directorio de trabajo (change directory):
+
 
$ cd <opciones> <ruta>
+
$ top
Listar el contenido de directorios (list):
+
 
$ ls <opciones> <ficheros>
+
Una vez que sepas los PID o comandos podés "matar" aplicaciones usando uno o el otro con diferentes comandos
Crear un directorio (make directory):
+
 
$ mkdir <opciones> <nombre del directorio>
+
'''Usando el  [[Lanzadores#Comandos|comando del programa]] '''
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).
 
Imagen:Nota advertencia.png 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.
+
$ killall  [ [[Lanzadores#Comandos|comando del programa]] ]
$ cat <opciones> <archivos>
+
$ killall -KILL [ [[Lanzadores#Comandos|comando del programa]] ]
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>
+
Por ejemplo <code> $ killall chromium</code>
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>
 
  
 +
'''Usando PID'''
  
==Copiar y pegar en una terminal==
+
$ kill PID
 +
$ kill -KILL PID
  
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.
+
Por ejemplo <code> $ kill -kill 3250</code>
  
 
{{Mbox|
 
{{Mbox|
Ctrl + Shift + C es copiar
+
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
Ctrl + Shift + V es pegar
 
 
|class=important}}
 
|class=important}}
  
== Tareas simplificadas por la terminal==
+
== 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):
  
¿y para que quiero todo esto si es un quilombo? algunas tareas la terminal las ahce mas facil
+
$ mv <opciones> <archivo> <ruta>
  
Actualizar
+
* Borrar archivos o directorios (remove):
  
Permisos
+
$ 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).
  
==trucos==
+
{{Mbox|
 +
Hay que tener mucho cuidado con la orden:
  
 +
$ rm -R <directorio>
  
cowsay
+
Ya que borra todos los archivos y directorios dentro del directorio a borrar.
 +
|class=warning}}
  
flecha arriba
+
* 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.
ctrl c para terminar un proceso
 
  
pedir listar procesos y matarlos
+
$ 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.
 +
 +
{{Mbox|
 +
Ctrl + Shift + C es copiar
 +
Ctrl + Shift + V es pegar
 +
|class=important}}
  
 +
==Hacé hablar a la vaca de Huayra==
  
[[Category: Glosario]]
 
  
[[Category: Aplicaciones]]
+
$ cowsay hola soy la vaca de Huayra

Revisión actual del 15:21 6 may 2015

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.

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.


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.


Es muy importante que:
  • 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