Ahora mismo, cualquier usuario normal puede usar perfectamente un sistema Linux sin tocar la terminal ni una vez. Sin embargo, la terminal no es un monstruo que nos vaya a morder si lo usamos. De hecho, es una herramienta muy potente y parte muy importante de los sistemas Linux.
Por eso no viene mal saber manejarse con ella. Podemos hacer muchísimas cosas más con la terminal, e incluso puede salvarnos de un apuro si en un momento determinado se nos fastidia el ordenador y sólo tenemos acceso de consola. Así que aquí en Genbeta, en esta primera parte del artículo os vamos a dar unos pequeños “trucos” y comandos básicos que os serán muy útiles para manejaros con la terminal.
Navegando por los archivos con la terminal
Una de las cosas básicas que podéis hacer con la terminal es navegar por vuestro sistema de archivos. Con cd directorio vais al directorio que sea. ls os muestra todos los contenidos del directorio actual, y pwd os dice dónde estáis.
También podéis manejar archivos, borrándolos con rm archivo (si es un directorio el que vais a borrar hay que usar rm -r directorio), moviéndolos con mv archivo destino y copiándolos con cp archivo destino. Si queréis crear un directorio, el comando es mkdir directorio.
Nano, un editor de texto para la terminal
De vez en cuando también tocará editar algún que otro archivo de texto. Para no abrir un editor gráfico, la mejor opción a usar es nano archivo. Se os abrirá el texto del archivo, que podréis leer, editar o borrar. Cuando queráis salir, sólo hace falta pulsar Control+X y decir si queremos guardar o no el archivo. Así de sencillo.
Find, la búsqueda de archivos más potente que hay
¿Queréis buscar un archivo determinado? Find es vuestra solución. De hecho, es la solución más potente, gráfica o de texto, que he visto para buscar archivos en tu sistema.
Para usar Find hay tres tipos de argumentos: opciones, tests y acciones. La primera nos permite modificar cómo va a buscar, la segunda qué va a buscar y la tercera qué va a hacer con lo que encuentre. No os asustéis, no es tan difícil como parece. Por ejemplo, si queremos buscar un archivo que se llame “pepito” en nuestro directorio HOME, el comando a usar sería find /home/usuario -name pepito.
Después podemos complicarlo un poco más. Por ejemplo, podemos añadir -executable para que sólo muestre archivos con el bit ejecutable, -mtime -k para que sólo busque entre los que han sido modificados hace k días o menos, o -delete para que borre los archivos que encuentre.
Estos son sólo unos pocos ejemplos. En la página de manual hay muchísimos más. Que, por cierto, esto nos lleva al siguiente truco:
Buscando ayuda: las páginas de manual
¿No sabéis cómo se usa un comando? Las páginas de manual son vuestro amigo entonces. Acceder al manual de un comando es tan sencillo como escribir man comando. Aparecerá entonces una página de manual con toda la información de ese comando (también pueden ser archivos, como por ejemplo /etc/network/interfaces), de la que podéis salir pulsando la tecla q. Dependiendo de la distribución, las páginas de manual pueden estar traducidas a tu idioma.
Una *versión reducida de las páginas de manua*l es el argumento --help, que funciona en la mayoría de comandos y que nos da unas instrucciones para usarlo, aunque normalmente más breves que la página de manual.
Jugando con los procesos: matando e iniciando en segundo plano
El comando para matar procesos es autodescriptivo: killall nombredeproceso. Fácil y sencillo, ¿verdad?. No hay mucha más dificultad, salvo si queréis mandar señales específicas (pausar, parar, señal de aviso…).
Pero no todo iba a ser destructivo, así que también podéis crear procesos decidiendo cómo lo hacen. Si añadís & al final de un comando, éste se ejecutará en segundo plano. Esto viene muy bien sobre todo cuando queréis iniciar un programa gráfico desde la consola: se ejecutará en segundo plano y podréis hacer otras cosas con la terminal o incluso cerrarla sin que ese programa se cierre o se vea afectado de ninguna manera.
Otro truco que podéis usar es la “concatenación” de comandos con &&. Así podéis incluir varios comandos en una sola línea que se ejecutarán uno detrás de otro siempre y cuando ninguno de los procesos salga con errores, en ese caso se parará. Si queréis que se ejecuten pase lo que pase, podéis unirlos con ;.
Mañana tendréis la siguiente entrega de este artículo con comandos más avanzados y complejos para los que estéis más interesados en indagar en la terminal. Mientras, si tenéis dudas podéis ponerlas en los comentarios y os las trataremos de resolver.
Ver 72 comentarios
72 comentarios
om1978
Muy bueno el articulo, pero seria de utilidad que al final colocaras una cartilla con los comandos y su función que has explicado en los párrafos.
Una pregunta ademas de nano y vi que otro editor de texto puedo utilizar por consola y un explorador de archivos que sea en consola lo pregunto por que a yo me conecto por ssh a un servidor en ubuntu.
77202
Lo de los procesos en segundo plano (con &) no es del todo cierto, y es que la mayoría de las veces quedan 'vinculados' a la terminal en que los creas, así que si cierras la terminal... adiós al proceso.
Tan sencillo como abrir una terminal, teclear un 'gedit &' y luego cerrar la terminal.
Para conseguir eso debemos usar 'nohup gedit &', que evitará que al cerrar la terminal se mate también el proceso.
Además, el 'nohup' crea por defecto un nohup.out en el lugar en que lo ejecutamos (en el que vuelca las salidas del proceso). Si no nos interesa esa información, siempre podemos hacer 'nohup gedit > /dev/null &' y no se creará ese nohup.out
Grojnak
Magnífico. Me encanta que acerquéis la terminal a la gente, hay que ir quitando miedos y descubrir su potencia. Por cierto, yo prefiero "locate" a "find". No necesita el path donde buscar y con cron se pueden hacer los updatedb que se quiera sin interferir.
max_adam
Algo acerca del comando cd y que muchisimas veces necesite. Y es como devolverme en las carpetas en las que entre.
"cd .."
No se como me encontre con el pero serviria que lo colocaras.
Llodra
Muy buen post Guillermo. Aunque una cosilla, lo de la concatenación de ordenes en bash tenia entendido que era con | y no con &&, que yo pensaba que era la conjunción de dos ordenes (AND) en el que se ejecuta la segunda orden condicionada por el valor que dé la primera.
Un saludo!
davidpoiu
Me parece la consola de Linux algo exclusivo para "pros" del Linux, y que les da una patada en el trasero a los "noobs" de Linux. Creo que debe ser más "user friendly"... Y no odio Linux.
lordofthecoffee
Hay una manera para hacer que la terminal vaya como un tren. Para esto, basta escribir "sudo aptitude install sl" y cada vez que queramos ir así, escribimos "sl".
Por cierto, muy bonito el dibujo ascii de la imagen. ¿Como puedo ponerlo en mi terminal? :D
logoff
Madre mía, tienes que iniciar una cadena larga de artículos de consola, sería algo genial y podría servir como guía de referencia en el futuro. la idea de las cartilla de om1978 en #1 es muy buena para que esto tenga sentido.
yo focalizaría los artículos en comandos comunes y que no dependan de la distribución. en realidad en consola son la mayoría, es lo bueno.
un apunte, el comando para matar procesos (y enviar cualquier señal del sistema) es kill, killall es más específico y mata todos los procesos con el nombre de comando pasado. aunque toda la gestión de procesos te da para un artículo (kill, killall, ps, servicios de sistema, niveles de ejecución, etc.)
77208
Muy buen articulo, estaría bastante bien que en próximas entregas hablaras de las tuberías o redireccionamiento de errores con 2>
55829
xatakalinux ya!
genlinux is busy :(
JuanAR
Muy buen artículo, con la recomendación de om1978 estaría perfecto. :)
CBj
Interesante articulo esta para el comienzo de buenos temas.
Solo una inquietud, con Find (MC u otro) ¿Se pueden buscar archivos y lanzar el contenedor del resultado de forma gráfica (dolphin, nautilus...) ?
mitcoes16
En MS DOS, y su secuela MS WOS existe la consola, por cierto horrorosa desde W2k y con pocos comandos. Si sabes la usas y es mucho más rápidoq ue los sitemas graficos. Los nix eran sistemas carísimos por eso se hizo el sistema de juguete para computadoras personales IBM PC DOS, luego MS DOS que costaba 4 chavos. 3.000 € de un Nix contra unos 60€ de un MS WOS 98, pero salio un clon nix, el Linux, y el porgramario GNU, entonces estos sistemas de 3000 € desaparecieron ante uno gratis, en medio Apple cambió sus sistema a otro kernel nix el freeBSD, que va de maravilla. Algún día MS cambiará su núcleo a un nix y se quedará sólo haciendo el entorno de ventanas, pero ese día perderá poder.
Parece que Beos, ahora Haiku y Hird, que son kernels del futuro van lentos, pero llegarán, entonces la distancia será aún mayor,. Mientras tanto las bolsas POR NECESIDAD, han tenido que migrar todas a Linux y los que se saben instalar los Sistemas Operativos en sus máquinas suelen hacerlo con Linux.
Hasta ahora no había preinstalaciones, pero con Android, WebOS, y UNR no tardaremos en verlas.
Noes cuestión de ser fanboy, es cuestión de que trabajes a gusto después de haber sufrido tus problemas y los de los demás por culpa de un juguete convertido en el SO más instalado por ser PREINSTALADO.
albertopinoblanco
Yo tengo guake como terminal y le tengo puesta una imagen de fondo con los comandos que más utilizo y los alias que me he creado.
Por ejemplo para editar el bash y agregar más alias utilizo "ebash" que hace "gksudo gedit /home/usuario/.bash_aliases", para abrir un comparador de archivos en un lugar determinado tengo el tip "aw" que hace esto "fslint-gui $pwd & exit".
También muy util para gente que no sepa inglés es cambiar los apt-get install por un sencillo "instalar" y la opción remove por desinstalar.
Los problemas principales que tiene el uso de la terminal son dos:
- Que hay gente que no sabe escribir a ordenador y tarda una millonada de tiempo en teclear siquiera apt-get install
-Que las páginas del manual están en inglés.
Yo con la primera no tengo ningún problema pero la segunda sí que me ocasiona algún disgusto porque aunque entiendo inglés bastante adecuado hay veces que incluso si estuviera en español tienes que pensar un buen rato las opciones que tienes que incluir para que hiciera lo que quieres y, al estar en inglés es bastante desesperante. Pongo como ejemplo el uso de ffmpeg o de wget que tienen manuales muy extensos.
Muchos saludos
p.D ¿que problema tiene el uso de pkill? Jamás lo he visto mencionado en post como elemento principal siempre andan con kill -id que es un coñazo. pkill es muchísimo más rápido puesto que sólo tienes que saber el nombre del proceso. Obviamente si tienes varios procesos parecidos puedes cargarte todos pero en un uso normal es bastante improbable que ocurra.
y estamos hablando todo el rato de terminal pero tampoco está nada mal irse a gnome-system-monitor (o su equivalente) para matar los procesos de manera gráfica. Además se pueden ajustar las propiedades de gnome-system-monitor para que muestre el comando que ejecuta el programa (la dirección desde donde se ejecuta).
p.d.d. DISPLAY=:0 programa & sirve para ejecutar programas desde la terminal no gráfica, por si hemos tenido que ir a ella a matar programas conflictivos (yo es que soy muy bruto y tengo miles de cosas abiertas a la vez).... lo pongo porque yo lo busqué durante miles de años sin encontrarlo, por si le sirve a alguien.
Saludos
jask
Muy interesante y educativo jeje. Tanto para la gente que quiere perder el miedo a usar el terminal como a la gente que lo usa diariamente. Refrescar conocimientos es una gran forma de autoreciclarse.
:) Un saludo
Jose Miguel Salcido Aguilar
Para editar textos mil veces mas rapido y mejor Vim que Nano, y aplican el editor como si fuese algo que toda distribucion trae, eso es falso.
Y si lo que buscas son binarios: whereis.
En si, la lista no esta mal, pero ... es algo que podrias encontrar con: man.
lmxcraft
La consola no muerde, ABURRE. XD
exelst
Así con las intefaces de usuario y la usabilidad de los años 70's
lmxcraft
Por momento pensé que era un post retro, de los 80s o principios de los 90s después me di cuenta que era sobre linux. XD