
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.



Comentarios
brillante
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.
Gracias por la sugerencia, la pondré en la siguiente entrega para que vaya completa.
Lo de los editores, además de vi y nano está emacs. Explorador de archivos en consola no conozco ninguno, aunque creo que con cd y ls puedes ir bastante bien. De hecho podrías hacer un comando que juntase cd y ls para ir a un directorio y que automáticamente te muestre sus contenidos.
Midnight commander.
la gracia es que vi viene preinstalado en todas las distribuciones y nano me atrevería a decir que en la mayoría. es preferible iniciarse con nano que es más intuitivo, aunque la potencia y las opciones de vi son inacabables. emacs en cambio no viene preinstalado por defecto, aunque está en los repositorios de todas las distribuciones.
para navegar por los ficheros de forma elegante os recomiendo linm que también está en los repositorios por defecto. aunque siempre es útil saber navegar por la consola con facilidad.
Que yo recuerde, si te estás conectando desde una máquina Windows, había algún programa que te permitía navegar por linea de comandos, o ver las carpetas como un explorador. Lo que pasa que no lo recuerdo, lo usé en la universidad... Lo siento, sólo puedo decirte que existir existe XD
¿Explorador de archivos en consola?
Por dios MC (midnight commander), inspirado en el clásico norton comander... Uno de los mejores exploradores de archivos en consola que ha habido...
"apt-get install mc" y tirando millas...
Puedes usar el vim ^^
Te recomiendo decir que rm borra los archivos sin opción a recuperarlos, también cuando ejecutas un comando en segundo plano usando &, en algunos programas tienen dependencias a la consola para depurar el programa y por eso si se cierra la terminal se cierra el programa y que usando creo que era "unhup" (corregirme si no se llama así) antes de escribir el comando y así no depender de la terminal creo que había que escribirlo de esta forma:
unhup &
-- editado por última vez a las 15:29
Se me adelantaron si ayer me puse a buscar, instale el midnight commander que lo uso mucho en el cd de SystemRescueCD y funciona de maravillas por SSH lo probé con un server de ubuntu y el editor que trae de texto es bastante practico también.
Pico, nano es fork de él y dispone undo/redo cosa que se agradece frente a nano.
No lo conocía, la verdad. Probare a ver qué tal.
La guía de comandos de FOSSwire "es todo un clásico". Esta traducida a varios idiomas, aunque el enlace a la versión española está ko. Es tan solo un folio A4, pero condensa los comandos más útiles/comunes.
http://fosswire.com/post/2007/08/unixlinux-command-cheat-sheet/
Buscando un poco, seguro encuentras un mirror al original en español. De hecho, buscando la versión en español encontré otra guía algo más completa.
http://www.retronet.com.ar/linux.pdf
Supongo que te refieres a Putty ( http://www.putty.org/ )
Con el te puedes conectar desde Windows, via ssh, a una máquina GNU/Linux, y tener acceso completo a la linea de comandos (muy recomendable si tienes que hacer mantenimiento remoto de tus servidores, y solo dispones en ese momente de una máquina Windows).
Jajaja la voy a imprimir y guardarla en la cartera :) esta muy buena la info
También esta WinSCP para navegar gráficamente desde windows sin usar Putty
-- editado por última vez a las 11:24
Se llama "nohup". Pero a veces, si matas o se muere el proceso de la terminal, los hijos si se han lanzado en segundo plano, quedan vivitos y coleando sin necesidad de "nohup". No siempre, depende del programa en cuestión.
interesante
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.
en general locate es más rápido porque se basa en índices. find hace búsquedas reales y así evitas problemas de sincronización. el updatedb debe estar periódicamente ejecutado, sino pierde toda la gracia. igualmente la potencia de find es superior a la de locate/updatedb, pero buen apunte.
No conocía locate, yo siempre he usado find.
Gracias! +1
interesante
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
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
-- editado por última vez a las 08:54
Acabo de buscar para que es. xD
Es un programa llamado cowsay, está en la mayoría de los respositorios. Puedes ir cambiado las figuras y todo.
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.)
-- editado por última vez a las 09:02
Muchas gracias!
Se qué el comando normal sería kill, pero killall es más sencillo por eso de no ir buscando el PID.
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
-- editado por última vez a las 09:56
Me ha hecho gracia lo de instalar en vez de apt-get install. Yo soy más cazurro y no se me ocurrió. Puse "aptinstall". :P
Para poner las páginas de manual en español, en Ubuntu (y derivados) puedes instalar los paquetes manpages-es y manpages-es-extra.
Lo que no se es qué páginas te pone en español (me imagino que no estarán traducidas todas...) ya que yo las prefiero en inglés.
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
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!
-- editado por última vez a las 11:32
Yo creo que es | quien usa el valor de la primera en función de la segunda y && para enviar dos órdenes que pueden ser independientes. Por ejemplo apt-get update && apt-get dist-upgrade. Las suelo poner juntas por motivos obvios, pero cada una funcionaría bien por separado.
Y uso mucho deborphan | xargs aptitude purge -y para que aptitude elimine sin remisión todo lo que deborphan ha detectado como innecesario.
-- editado por última vez a las 11:52
interesante
El && sirve para que la segunda orden se ejecute solo si la primera se ha ejecutado bien. Que creo que es lo que decías tú. :)
El | sirve para enviar la salida de la primera orden como entrada de la segunda orden. Por ejemplo, si haces un ls | less, lo que mostraría el ls por pantalla, se pasa como entrada a la orden less por lo que puedes leer varias páginas a tu ritmo.
esa es la respuesta correcta. el | es para reencaminar salidas con entradas, en cambio el && solo espera ejecuciones correctas. es muy usado cuando se compila software grande, ya que dejas una instalación desatendida (./configure && make && make install por ejemplo)
Sí, a esto me refería ;). Es que en la facultad los profesores siempre me hablan de concatenar ordenes refiriendose a |. Y es como tu dices: sirve para enviar la salida de la primera orden como entrada de la segunda orden (si quiero leer lineas de un archivo texto por ejemplo pondría cat $1 | while read linea ; do ...... (script que sea) ;) ).
En fin, espero que haya muuuchas entregas de 'La terminal de Linux no muerde', chicos!
Genial, gracias por el dato ;)
Muy buen artículo, con la recomendación de om1978 estaría perfecto. :)
Muy buen articulo, estaría bastante bien que en próximas entregas hablaras de las tuberías o redireccionamiento de errores con 2>
xatakalinux ya!
genlinux is busy :(
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
interesante
...Y tenia que llegar el troll.
Así con las intefaces de usuario y la usabilidad de los años 70's
La verdadera informática es desde aquí y no de interfaz gráfica y también aplicartelo @30.
PD: Puede que hay programas para hacer lo de los comandos pero aun así dependemos aún de la consola.
Asi es interfaces prehistoricas pero que bien empleadaas son mucho mas potentes que las soluciones graficas :)... mas respeto por favor....
la verdadera informática, es utilizar los datos de los archivos para realizar tareas útiles en el mundo real. Las tareas de administración de computadoras son computación, no informática. La informática real son tablas, gráficos y muchos informes en papel.
La consola no muerde, ABURRE. XD
Amigo, si quieres diversión ve a un parque o al cine. Ya aburres con tus comentarios troll.
Típico ahora soy un troll, es que ya aburren estos fanboys de linux, siempre es lo mismo, windows tiene virus, linux es prefecto, si no te gusta eres un troll, POR DIOS!!! No estoy troleando solo digo que en épocas del iPad, Kinect etc.. empezar a hablar de la consola es ridículo esta solo la usa un pequeñísimo nicho de usuarios, algunos administradores (bien por ellos) pero otros solo son unos egocéntricos que creen ser expertos por hacer lo mismo de todos los días pero usando la consola. Vamos que para buscar un archivo o editarlo la consola es u fastidio. Yo tuve que usarla muchos años cuando solo exixtian las interfaces de texto después que llegó la interfaz gráfica... la consola... para los administradores mi amigo. ;)
Hablando de aburrir te repito que no hay nada mas aburrido que los inquisidores que ven trolles por todos lados.
-- editado por última vez a las 16:44
Nunca he dicho que linux sea superior, solo he dicho que tus comentarios de fanboy no salen, al parecer cada vez que se habla de linux hay un comentario tuyo diciendo boludeces que ni vienen al caso, y adivina que, en windows tambien existen los comandos, aun estando en "La época kinect" como tu dices, por favor mas coherencia con lo que dice.
ups eres argentino, ya sabía yo...
...pero bueno, yo no digo que los comandos no existan y claro que Windows también los tiene pero dedicarles no se cuantos post a la consola y sus comandos no es más que un pretexto (desesperado) para hablar de linux pues en internet hay millones de foros y blogs dedicados SOLO A ESO. Por otra parte viendo tus comentarios te digo que yo no amo tanto a Windows como tu a Linux. sos-fan jajajaa yo diría soy-fan.
-- editado por última vez a las 00:23
Oye, acaso hay algún problema de hablar de linux, no todas las entradas de genbeta tienen que ser de Apple/Microsoft y si tanto te molesta leer las entradas de terminales, entonces para que lees la entrada, y peor aun, para que comentas si solo vas a decir "ABURRE" o "Pensé que había regresado a los 80".
Otra cosa, esta bien que "en internet" exista información sobre un tema como es la terminal, así también que es bueno que exista documentación suficiente de msdos o de Windows, el que este interesado obviamente buscara y leerá, y sobre amar o no amar linux no me interesa, solo soy un usuario mas del montón de linux y claro que me llama la atención las entradas que hablen del sistema, pero tampoco soy fanboy gritando e insultando a medio mundo de por no usar x cosa, cada quien es independiente a elegir lo que mas convenga.
Y lo del nick, no conoces la brigada SOS xD
-- editado por última vez a las 11:38
¿insultos de mi parte? no lo creo, alguna broma si, ¿pero insulto? eso es cosa tuya no mía. "...hay un comentario tuyo diciendo boludeces..." Por lo de la brigada OK, solo me equivoqué porque como ustedes no usan "eres" sino "sos", tiende a confundir a los que hablamos el otro español.
Para serte franco, la consola a mi me parece MUY poderosa, mas que el UI.
¿Por que? Por que puedo manejar la computadora a como se me antoja y es mas sencillo tambien!, el unico problema es saber que hace cada programa, pero... es casi igual que los botones de una UI ó Menues, nomas que ahi no estan plasmados, los tengo que conocer.
Cada quien su estilo, como tu has dicho, los administradores usan mucho la consola... YO soy el administrador de mi computadora, no otro wey, asi que, talvez sea por eso.
"...Por que puedo manejar la computadora a como se me antoja..." yo no puedo hacer nada que no tenga un botón en la UI, tu no puedes hacer nada que los commandos no tengan establecido, así que estamos en las mismas. Para algunas cosas muyyyyyyyyy puntuales la consola es insuperable pero ya te digo muyyyyyyyyyyyyy puntuales. Fuera de los servidores claro.
Yo no puedo hacer nada que los comandos no tengan establecido, exacto, pero a diferencia de TI, yo si necesito algo, lo programo y no muevo cielo, mar y tierra para poder hacer que con un click yo pueda realizar una tarea que pude hacer con miprograma opcion.
Y de nuevo, si tu te vez limitado, es tu pedo, yo no soy un usuario mas.
No eres un usuario más eres un EGOLATRA y MEGALOMANO.
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.
A mi también me gusta más vim que nano pero hay que reconocer que para el que empieza en el mundo de la cónsola es más sencillo entender el nano.
:wq ;)
Me encanto el ultimo guion.
interesante
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.
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.
No estoy de acuerdo contigo de que sea de "pros" porque si en un mes así te pones con la consola con comandos sencillos (mv, mkdir, cd, ls, cp, apt-get, aptitude y alguno que otro) te digo que le coges el truco, fui lo que hice yo cuando empece con Linux y ya se "bastante" (Medio-bajo)
No son comandos, son programas.
algunos son comandos, cuando interactúas con la propia terminal (cd por ejemplo). en cambio otro son programas, cuando son binarios del sistema (por ejemplo top).
Perdon, tienes toda la razon, pero hablaba del final de la lista del pequeño, donde agrega aptitude y apt-get que no son comandos, son programas.
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...) ?
en principio no, aunque con el arte de las tuberías se podrían hacer milagros. la gracia es que si quieres buscar con X, uses el buscador de Nautilus directamente.
En el experimentar traera alguna respuesta ;) Lo preguntaba por que alguien me hizo una pregunta similir al notar que nautilus tardaba (para el) demasiado en hacer busquedas. De igual manera se te agradece @logoff
nautilus tard porque no usa índices, igual que find. si te gustan las búsquedas rápidas usa locate en consola y cada cierto tiempo haz un updatedb (con permisos de root). te lo puedes automatizar una vez al día. búsquedas casi instantáneas.
Muchas gracias por el dato lo tomare en cuenta.
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.
no compro el fin de Windows o el cambio de su kernel tan radical como pronosticas. llevo demasiado tiempo oyendo en fin de Windows como para creerme tu punto de vista.
Escribir un comentario
Para hacer un comentario es necesario que te identifiques: ENTRA o conéctate con FacebookConnect