Showing posts with label básico. Show all posts
Showing posts with label básico. Show all posts

Wednesday, January 13, 2016

Aprender GNU/Linux de forma fácil y rápida.

La entrada Soy nuevo en GNU/Linux ¿cuál distro me recomiendan? Parte I no era la solución mágica que algunos esperaban; pero es más un intento de guía personal. Creo firmemente que el individuo debe de aprender y crecer a nivel personal, no sólo técnico o intelectual. En la medida que aprendés y transferís principios de una disciplina a otra, tu criterio se amplía en lugar de volverse más angosto. 
Abrí la mente, abandoná el ego; 
Tomá lo bueno, desechá lo malo.
No puedo obligarte a pensar, sentir, ser y vivir como yo, pero desde fuera de un problema las cosas se miran de forma distinta y uno puede notar detalles que, difícilmente se ven cuando uno está sumergido en el problema: uno no sabe lo que no sabe.
  1. Uno no sabe lo que no sabe (uno tiene un problema y no sabe/lo considera problema).
  2. Uno sabe que hay algo que no sabe (reconoce que hay un problema).
  3. Uno descubre qué es eso que no sabe (de a poco, define el problema)
  4. Uno aprende al respecto (conceptos, elementos, dinámicas, relaciones, principios, reglas; se apoya en gente que sabe, expertos, etc).
  5. Uno investiga y conoce más del tema. Esto ayuda a delimitar el problema y a entenderlo mejor. Se establece un proceso para resolver el problema.
  6. Uno aplica lo aprendido metódicamente (resolución del problema).
  7. Uno repite pasos hasta resolver el problema (iteración).
  8. Uno observa, mide resultados y evalúa,  calibra, hace ajustes para la siguiente vez (feedback, iteración y depuración del proceso que se había definido).
  9. Uno resuelve más problemas con el nuevo conocimiento (se gana experiencia, se especializa). 
  10. Uno aporta nuevas ideas, procesos, soluciones (uno se vuelve especialista, experto)
  11. Uno comparte y ayuda a otros a resolver los problemas (replica el modelo y la comunidad, sea del carácter que sea, se beneficia).
  12. Todos tienen un orgasmo infinito; Dennis Ritchie, Richard Stallman y Linus Torvalds sonríen complacidos mientras Bill Gates y Steve Jobs lloran por la irritación en la entrepierna.
¿Qué putas tiene que ver esta mierda con GNU/Linux? Todo, mi joven saltamontes, todo.  Aprender, des-aprender, re-aprender.

  • Aprender algo útil.
  • Des-aprender hábitos perjudiciales o ineficientes.
  • Re-aprender prácticas útiles que se dejaron atrás.
Saludos :)

Soy nuevo en GNU/Linux ¿cuál distro me recomiendan? Parte I

Todos nos preguntamos eso al inicio. 

Cuando escuché de GNU/Linux por primera vez, pensé que era una sola cosa, una sola organización, un escritorio, un set de aplicaciones, uno solo. 

Ahora entiendo que Linux es un sistema (no sólo informático sino también) orgánico; como tal es entero, completo en sí mismo; y a su vez, diverso. Es la síntesis de miles de esfuerzos globales. Hace tres-cuatro años, mi interés primordial era: ¿cómo putas lo instalo? 

Me documenté y llegué a varios blogs -angloparlantes; enfatizo el hecho de que se encuentra mucha más info en ese idioma; es el latín moderno- que instruían cómo instalarlo. Ya sabía como instalar Windows desde una USB, así que el tema no fue completamente ajeno. En las instrucciones, el primer paso implícito en todos los blogs, era:
Escogé tu distro
Yo: ¿Ah? ¿Qué putas es una distro?
Cuando se trata de conocimiento y aprendizaje, usualmente una sola pregunta no se resuelve con una respuesta, sino haciendo más preguntas. Leí sobre las distros y me fascinó que cada una lucía diferente a la otra, y que incluso una misma podía tener distintas apariencias y usos. Entonces escuché de "distros estables", "distros a la vanguardia", "distros minimalistas", "distros amigables", "distros esotéricas", etc., etc., etc. Vi screenshots y algunos me parecían "aburridos", otros me resultaban una imitación de Windows, otras una copia de Mac OS; otras me parecían increíbles y fascinantes, y así. 

Estoy seguro que vos también has pasado por esto y también te hiciste la pregunta del millón:

¿Cuál distro instalo?

Si andás en las redes sociales y sos miembro de grupos de GNU/Linux, habrás visto la misma pregunta hecha varias veces al día en cada grupo. Todos los días llega un primerizo/a porque escuchó maravillas de Linux, y se animó a probarlo. Pero descubre que  el tema de Linux es un poco más extenso, porque tiene más opciones versus Mac OS y Windows [esto es porque Linux es flexible y modular; pensá en GNU/Linux como un juego de Lego; como puede ser un modelo F1 ya armado, puede ser una cubeta llena de legos listos para que vos creés lo que se te dé la gana]. 

Cuando aparece un "nuevo", quienes tenemos ya un tiempo usando GNU/Linux, de alguna forma sentimos algo de responsabilidad por ellos; todos fuimos primerizos. Si practicaste artes marciales o un deporte en equipo y llegaba gente nueva de vez en cuando, entenderás la importancia de esto. GNU/Linux es lo que es porque alguien (Linus) inició la kernel, y después otro llegaron otras leyendas míticas y organizaciones que aportaron a la causa. Ayudar es bueno. Pero creo que,

... necesitamos replantearnos lo que entendemos por ayuda. Veamos el asunto desde dos ángulos:


• Muchas veces, la ayuda que los n00bs pedimos, se trata de que alguien más busque algo por nosotros. O sea, pedimos cínicamente que nos hagan la tarea; tal vez por simple pereza o porque no sabemos dónde buscar, qué preguntar, cómo preguntarlo; entonces buscamos a un humano que decodifique nuestras dudas.

• Por otro lado, la ayuda que a veces damos a otros n00bs, se limita a tirar respuestas aleatorias, basadas en juicios y opiniones personales, como si se tratase de un juego Pokemon: 
¡Pikachu, instala Fedora XFCE!
¡Estás bobo, usa KDE mi Charmander, quedará "ermozo"!
Tontuelithoss ustedes no saben; uso mi carta de Manjaro turbo cargado con mil widgets de Conky... también te va a correr en una netbook con 1GB de RAM... Fatality :v :v :v
Consideremos esto:

• Pedir ayuda implica que definás primero el problema que necesita solución.
• Pedir ayuda no significa "háganme la tarea... sóplenme la respuesta".
• Pedir ayuda tampoco es igual a "decidan por mí por favor".

• Dar ayuda no significa escupir respuestas como dogmas religiosos inamovibles. Esto no es un concurso de preguntas y no vas a ganar una Range Rover por dar más respuestas correctas como cotorra.
• Dar ayuda no significa tomar mis opiniones como verdades absolutas e imponerlas a otros.
• Lo que me sirve a mí, puede servirle a alguien más, o tal vez pueda causarle más problemas (esto aplica cuando alguien tiene una netbook y le sugieren que instale Fedora con Gnome 3.x y le ponga Compiz para tener los workspaces como un dado 3-D.
• Lo que me gusta a mí puede gustarle a alguien más o parecerle caca mal cagada.

Pedir y dar ayuda debe de ser útil para todos: todos deberíamos de aprender de ello; tanto el que la solicita, como el que la da, como los espectadores.

Escribí esta primera parte, para que reflexionemos y pensemos en términos de eficiencia y optimización de recursos: No hay pregunta estúpida; hacer la misma pregunta que se hizo literalmente miles de veces antes, tampoco te hace estúpido. Seamos sensatos: considerá si otros deberían darte de su tiempo para responder una pregunta hecha mil veces antes, cuando la respuestá está a unos clicks en un motor de búsqueda. Si pudiste escribir en un  grupo social para preguntar algo que todos nos preguntamos antes, estoy seguro que también sos capaz  de encontrar la respuesta sin tener que crear otra thread y desperdiciar espacio, quitar visibilidad a los posts ajenos que pueden ser más urgentes, y gastar el tiempo ajeno. 

Pensalo sin sentimentalismos, sin ponerte a la defensiva; dejá eso para la gente que no crece como persona ni como profesionales. Mirá al  espejo, tomá lo bueno, desechá  lo malo. Esto no es una regañada o una bofetada ni un insulto, es un llamado a tu inteligencia. Sé que del otro lado del internet hay alguien inteligente -si has leído hasta acá, sos lo suficientemente paciente y dispuesto a aprender; y  eso es lo esencial para crecer en GNU/Linux y resolver problemas en general :)

En la segunda parte te compartiré algunos criterios objetivos a considerar a la hora de escoger una distro. Pero me gustaría que compartás este artículo con tus amigos Linuxeros. Entre más seamos quienes practicamos el buen uso de los recursos, podremos llegar a más gente y ayudarnos de forma más sana, efectiva, eficiente.

Iniciativa, proactividad, autonomía, sentido común, independencia, autogestión, autodidáctica.


Hasta entonces, suerte :D

Sunday, December 27, 2015

cat: leer y crear archivos de texto de forma simple


$ whatis cat 
cat (1)              - concatenate files and print on the standard output

Cat, comando de usuario - concatená archivos e imprimilos en salida estándar (en texto, pues).


$ cat /etc/fstab 
muestra las unidades que son montadas automáticamente al arranque del sistema operativo.

$ cat archivo.txt
muestra el contenido del archivo de texto que has indicado. Ahora, recordá que en sistemas UNIX, un documento puede o no tener extensión. Un .png pudiera no terminar en ello, así como un .txt pudiera incluso terminar en .gif. Es el sistema quién escanea el archivo y determina su tipo de extensión. Puse el .txt para ejemplificar; y lo puse usando una ruta relativa: el directorio presente.  O sea, no importa dónde estés en el filesystem, vos podrás visualizar un archivo usando cat, siempre que incluyás la ruta correcta, relativa o absoluta, dependiendo del caso:

$ cat ../home/chepito/documentos/folder1/archivo20
y si ya estás en el folder1, sólo tendrías que hacer:

$ cat archivo20

Cat también puede servir para crear un archivo de texto nuevo, usando redirección de salida de corriente (output stream redirection). No vamos a hablar mucho de esto, sólo te digo que podés usar cat para crear un archivo nuevo de texto, así:

$ cat > archivo_de_texto_nuevo

y cat entrará en "modo interactivo"; en lugar del PS1 (el nombre de tu cursor en Terminal), vas a ver el " > " :

$ cat > archivo_de_texto
>

Y aquí podrás escribir texto, apretando enter para crear una nueva línea:

$ cat > archivo_de_texto
> primera línea para probar cat en modo interactivo
> segunda línea de prueba
> tercera línea, blah blah blah... 
> [ para finalizar, das enter, y luego "Ctrl D" ]

Y cuando hayás terminado, das enter una vez más, y en la línea en blanco apretás Ctrl + D. Esto sale del modo interactivo y guarda cambios. Ahora, mirá los cambios que lograste: 

$ cat  archivo_de_texto
 primera línea para probar cat en modo interactivo
 segunda línea de prueba
 tercera línea, blah blah blah... 
$

Digamos que querés agregar otra línea; entonces vas a usar

$ cat >> archivo_de_texto
> esta línea será agregada al final del documento.
> [ Ctrl D ] 

Uso Ctrl + D para salir y ahora:

$ cat  archivo_de_texto
 primera línea para probar cat en modo interactivo
 segunda línea de prueba
 tercera línea, blah blah blah... 
 esta línea será agregada al final del documento.
$

Recordá: 

$ cat > archivo
te permite crear y agregar líneas de texto a un archivo, sin tener que accesar a un editor. 

$ cat >> arhchivo 
añadirá nuevas líneas a un archivo ya existente, así haya sido creado por cat o por otro editor (gedit, leafpad, vim, nano...). Si por error hacés " " en lugar de " >> " a un archivo, vas a sobrescribir en lugar de agregar... o sea, vas a mandar a la mierda lo que había antes. Si necesitás editar una línea en particular, mejor usá un editor de GUI o de CLI (gedit, leafpad, nano, scratch editor, vim, emacs, etc.) para navegar hacia la línea deseada.

Resumen: 
¿Para qué me sirve cat? para mostrar el contenido de un archivo de texto en terminal, sin tener que usar herramientas externas, gráficas ni tener que salir de terminal. Esto significa: ahorro de recursos de procesamiento, y tu tiempo. Es usado a menudo para leer rápidamente archivos de configuraciones del filesystem, cuando son cortos. ¿Funciona con largos? Sí, pero no es tan cómodo a menos que tu Terminal tenga soporte de navegación vertical (para scrollear hacia arriba); o a menos que lo usés con una pipe y less; pero eso es otro asunto que no tocaré hoy y no tiene sentido. 

¿Tengo que usarlo? No. Pero existe y podrías beneficiarte de él; sin embargo, a veces podrás preferir un editor completo (así sea de CLI o GUI) como cuando estás leyendo scripts de programación, porque los editores dedicados tienen "resaltador de sintaxis", colorizan palabras claves, strings, booleanos, etc. 


Monday, July 20, 2015

Comando kill: asesiná procesos atacados.

Como n00b es difícil no meter la pata muy de vez en cuando. Justo hace unos momentos estaba reinstalando Noise (Music en Freya y Luna) para diagnosticar e intentar un problema que tuve con él y mi librería de música. Se instala con  

$ sudo apt-get noise 

cuando recordé que en algunos sitios he encontrado la siguiente variación:

$ sudo apt-get install -y nombre_del_programa_a_instalar_acá

y al hacer esto, el prompt que anuncia:

"After this operation, 4,829 kB of additional disk space will be used. Do you want to continue? [Y/n]" 

se salta, tal y cual lo describe $ apt-get --help, así que ya no es necesario estar presente durante la descarga para decir que "sí" a la instalación (vamos que podés ir al baño o por comida al refrigerador mientras la tarea corre por sí sola). La opción -y significa "Assume Yes to all queries and do not prompt": asumir que sí a las preguntas y no pedir respuesta. Como decía, recordé esa opción -y así que cancelé con Ctrl + z la operación. Cosa que fue tonta porque pude simplemente contestar "n" para abortar.  Así que cuando intenté 

$ sudo apt-get install -y noise

Recibí 

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Intenté nuevamente, recibí el mismo error. Yo fui el responsable de este problema. Luego de una Googleadita rápida, descubrí que el /var/lib/dpkg es un directorio usado cuando APT está procesando una paquete/programa para su descarga e instalación. Al menos esa es la explicación más útil que encuentro para mi nivel de conocimiento. El punto es, no podía instalar porque el directorio usado para tal fin está "bloqueado y siendo usando por otro proceso". 

Busqué información para resolver esto. Hace tiempo conocí a kill y pkill pero esta vez no sabía cómo identificar el proceso. Entonces en un maravilloso thread del foro de Ubuntu, encontré las siguientes instrucciones: 

Primero: Identificar el ID del proceso que está atascando al apt-get:

$ ps aux | grep apt
este comando nos mostrará el número del proceso que está usando el apt del comando apt-get:

root      6020  0.2  0.0  72648  4020 pts/14   S+   22:07   0:00 sudo apt-get install noise
root      6021 11.0  0.7  90548 59296 pts/14   S+   22:07   0:00 apt-get install noise


El número del proceso se muestra en la segunda columna, justo después del nombre de usuario (para el caso, recordemos que sudo = SuperUserDO, lo que implica que es el root quien instala). 

Segundo: con esta información, podemos darle jaque mate al proceso:

$ kill -9 6020

El -9 es una opción dada por el comando kill e implica que el proceso será terminado forzosamente; o sea, que le damos jaque mate irremediable.  Ya con esto, pude continuar felizmente mi camino de destrucción accidental :v 

Espero que esto sirva. Recordá, si un día se atasca el apt-get, 

$ ps aux | grep apt



$ kill -9 númerodeprocesoacá

son tus mejores amigos :)

Wednesday, January 21, 2015

¿Tengo instalado XYZ aplicación en mi Distro?

Depende.

Sí, decimos "depende" mucho. Pero es que depende :) A ver, cada distro trae sus cosas "de fábrica" y el sitio oficial te dirá más o menos, qué trae. Si sos conocedor, te darás cuenta que a partir de cierta edición, usualmente una Distro trae cierto software instalado -por ejemplo, gedit viene instalado en una distro empacada con Gnome, como Fedora 19, 20, o como PinguyOS 14, digamos. Cosas como esta, puede ser pueden ser encontradas en tu menú de aplicaciones (tecla "Súper", o sea... la tecla de Windows, vaya).

Pero Software menos usado regularmente, algo como un comando -que técnicamente es un programa- no estará en la lista de aplicaciones en tu Launcher, Slinghot o como le querrás llamar. Algo tal vez, como una herramienta para administradores, como ssh por ejemplo, que es un protocolo para "telnetear" de forma encriptada -acceder a otra máquina de forma remota, a través de CLI. O a lo mejor, sólo querés aprender la forma de encontrar software que probablemente ya tenés, via Terminal.

A veces entonces es necesario usar la Terminal para saber si tenés instalado una applicación, y cuál versión de ella estás usando.

Acá viene el apt-cache policy y el apt-cache show:

$ apt-cache policy gedit
gedit:
  Installed: 3.4.2-1
  Candidate: 3.4.2-1
  Version table:
 *** 3.4.2-1 0
        500 http://mirrors.kernel.org/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status
$

Como ves, el apt-cache policy te muestra si tenés instalada la aplicación, y cuál es la candidata -a reemplazar a la actual; es decir, la más reciente; y de cuál mirror la descargarías.

Si la app no existe, te sale algo así:

$ apt-cache policy midori
midori:
  Installed: (none)
  Candidate: 0.4.3+dfsg-0.1
  Version table:
     0.4.3+dfsg-0.1 0
        500 http://mirrors.kernel.org/debian/ wheezy/main amd64 Packages
$

El comando apt-cache show te muestra info más detallada, incluyendo dependencias, descripción, enlace al sitio oficial de la app, etc:

$ apt-cache show gedit
Package: gedit
Version: 3.4.2-1
Installed-Size: 2758
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Architecture: amd64
Depends: python2.7, python (>= 2.6.6-7~), python (<< 2.8), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.4), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.2.4), libenchant1c2a (>= 1.6), libffi5 (>= 3.0.4), libgdk-pixbuf2.0-0 (>= 2.22.0), libgirepository-1.0-1 (>= 0.9.3), libglib2.0-0 (>= 2.31.18), libgtk-3-0 (>= 3.3.16), libgtksourceview-3.0-0 (>= 3.0.0), libice6 (>= 1:1.0.0), libpango1.0-0 (>= 1.14.0), libpeas-1.0-0 (>= 1.1.0), libsm6, libx11-6, libxml2 (>= 2.7.4), gir1.2-atk-1.0, gir1.2-freedesktop, gir1.2-gdkpixbuf-2.0, gir1.2-glib-2.0, gir1.2-gtk-3.0, gir1.2-gtksource-3.0, gir1.2-pango-1.0, gedit-common (>= 3.4), gedit-common (<< 3.5), gsettings-desktop-schemas, python-gi (>= 3.0), python-gi-cairo (>= 3.0), gir1.2-peas-1.0, iso-codes
Recommends: zenity, yelp
Suggests: gedit-plugins
Breaks: gedit-plugins (<< 2.91)
Description-en: official text editor of the GNOME desktop environment
 gedit is a text editor which supports most standard editor features,
 extending this basic functionality with other features not usually
 found in simple text editors. gedit is a graphical application which
 supports editing multiple text files in one window (known sometimes as
 tabs or MDI).
 .
 gedit fully supports international text through its use of the Unicode
 UTF-8 encoding in edited files. Its core feature set includes syntax
 highlighting of source code, auto indentation and printing and print preview
 support.
 .
 gedit is also extensible through its plugin system, which currently
 includes support for spell checking, comparing files, viewing CVS
 ChangeLogs, and adjusting indentation levels.
Homepage: http://www.gnome.org/projects/gedit/
Description-md5: 5091aaf6659e6bf7ca9b32695a59f9cd
Tag: implemented-in::c, interface::x11, role::program, suite::gnome,
 uitoolkit::gtk, use::editing, works-with::text, works-with::unicode,
 x11::application
Section: gnome
Priority: optional
Filename: pool/main/g/gedit/gedit_3.4.2-1_amd64.deb
Size: 1027628
MD5sum: 74289ad5af1d28b1f8fde3ffd3e7d838
SHA1: aed9bbcfbd5c9ac4a517f269644d98eea3b4e0c0
SHA256: d0415d7272bbccf8e29a9396d7d733bde5651aa84b5fd03bb7c387c3f5b928e6

A lo mejor no es algo que usarás día a día, pero me parece que es uno de esos comandos inútiles que te van a familiarizar con tu Terminal y tal vez te ayuden en el futuro, si planeás hacer labores avanzadas.

$ which también sirve, pero sólo te da la ruta del programa, no más detalles.

$ which iceweasel
/usr/bin/iceweasel

Si la app no existe, no te arroja nada; busquemos al viejo y conocido Midori, un explorador web instalado en algunas distros, pero que no está instalado de fábrica en Debian:

$ which midori
$

Nos vidrios al ratón, Chele.
Editado: Este artículo fue escrito el año pasado, mientras aprendía comandos nuevos. Los guardé porque pensé que serían útiles para los cheros* novatos. Usalos, y mirá la información de tus programas.


Chero, a: salvadoreñismo; sustantivo m. f. Amigo, colega, pana, cuate, camarada, joven, muchacho, individuo, sujeto, chamaco, tipo.

Monday, June 9, 2014

top

top -i
top -c


Este es un trabajo en progreso. Creamos la entrada, para poder relacionar otro artículo a este. Falta incluir más imágenes ilustrativas, e incluir instrucciones de instalación para cuando no instalás una Distro empacada en Gnome. Pero regresá a mirar esto de nuevo, en unas cincuenta y cuatro semanas... Nos vidrios al ratón Chele :D

Saturday, May 10, 2014

Ubuntu y derivados: Cómo cambiar contraseña de Root.

Hola a todos.

¡Esperamos que vayan bien! Como mencionamos en nuestro artículo de Root, Ubuntu y sus derivados van a configurar un hash criptográfico como contraseña para el superusuario, de cuya existencia no sabrías si no estuviéramos hablando de ella.
Esto significa ventajas para el administrador porque no tiene que recordar una contraseña extra, y en caso de que un blackhat quisiera crackearte, pues tiene más difícil el hacer un ataque de fuerza bruta porque no es una contraseña convencional como la fecha de tu cumpleaños más tu marca favorita de calzones, o el nombre tu esposo y tu mascota juntos.

Ahora, si insistís en que querés tener full acceso a Root y querés habilitar una contraseña propia, pues sos libre de hacerlo, supongo. Es realmente innecesario, porque para eso se usa sudo o gksudo.

Hacé esto:

$ sudo passwd root Esto ejecuta el cambio de contraseña para root.
[sudo] password for user: ingresá el password del usuario que estás usando.
Enter new UNIX password: aquí es donde inicia la magia; ahora estás cambiando el password de root.
Retype new UNIX password: lo confirmás...
passwd: password updated successfully. é-xi-to; ya lograste hacer lo que no deberías de estar logrando. Yo que vos, me tatuaría el tatuaje en la palma de la mano para que no se me olvide.

Como cortesía, te voy a compartir el comando para "deshacer" o "revertir" estos cambios (tenés que estar logueado como root; acordate).

$ sudo passwd -dl root ordenás que el password de root que configuraste, venza.
passwd: passwd expiry information changed. venció, ahora de regreso al innombrable password oculto.

En todo caso, si quisieras una sesión persistente de Root (si te recordás, sudo sólo te permite typear un comando a continuación pero la siguiente línea va a ser ejecutada como usuario regular a menos que volvás a escribir sudo), te recomendamos que no cambiés la contra de Root; el comando su -i es un buen substituto, porque te permite simular una sesión "persistente" de root. Cuando hayás terminado, das exit y ya.


Con un poco de buen inglés podés ver el sitio de donde tomé este resumen y lo traduje para nosotros.

Thursday, April 17, 2014

Terminal, II.

¿Te has fijado en el texto baboso ese que sale al inicio de tu Terminal? Bueno, ese texto es el que indica quién está loggueado coen la Sesión de Terminal (cada vez que abrís un programa, iniciás una "sesión" en él) y tu ubicación en Directorio de Linux (como si estuvieras navegando a través de "Mi PC" en Windows XP, por ejemplo, y la barrita de direcciones al tope, te indica dónde estás al momento). 



La -$ es tu indicador o prompt, y siempre aparece cuando la Terminal está disponible para vos.

Como ves, escribí un comando (este es mi Input o Entrada) que no existe (sí, estaba inventando mierda y pensé que ese comando existía, pero aprendí que no, jeje) y le di Enter. Después de dar Enter, Terminal responde (esto es el Output o Salida) en la segunda línea:
"No hay comando llamado 'Terminal', ¿quisiste decir Comando 'Terminal' del paquete 'terminal.app' (universo)?y me vuelve a dar la Línea de Comando, para que siga escribiendo. 
Vamos, que me sacó el dedo la muy desubicada. Luego trato un tal comando "about" (otra vez estaba inventando), y mi Output es el siguiente:

"Comando no encontrado"
[porque no existe] y me da la línea de comando, para seguir intentando.
 ~$ uname -a [y apreto enter] 
[y como este comando sí existe, me da el Output esperado para ese comando: la info de mi Usuario, y la Imagen de mi Sistema Operativo -que de hecho es Luna, pero luna es un derivativo de Ubuntu, la hora y fecha: ]
Linux belial-desktop 3.2.0-51-generic #77-Ubuntu SMP Wed Jul 24 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[y luego de haber completado mi orden y haber dado el Output, me da la línea de Comando para seguir escribiendo: ]
belial@belial-desktop:~$
Recordá: un comando es una instrucción que le das a tu Terminal, hecha en palabras/frases específicas que ella entiende. Si no le das una instrucción reconocible por ella, te va a sacar el dedo (en forma figurada), como lo hizo en los primeros dos ejemplos y te va a dar la línea de comando o prompt para seguir escribiendo hasta el fin de los tiempos. ¿Su uso es más fácil de lo que parece, cierto? Sólo tenés que entender esto por ahora, y aprender los primeros comandos básicos que Jimmhy te va a enseñar pronto.

Y esa es toda la aterradora Terminal y su gran magia negra :) 
Comentarios, sugerencias, quejas, puteadas, feedback constructivo o destructivo, ¡adelante!

Carpe Diem.


Si querés saber más caca teórica acerca de la Terminal, mirá el carburo que la Wiki comparte:
"Un emulador de terminal es un programa informático que simula el funcionamiento de un terminal de computadora en cualquier dispositivo de visualización. 
Los emuladores de terminal incorporan características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir secuencias de instrucciones por lotes o (scripts o guiones). Uno de los lenguajes o intérpretes más conocidos, es el Bourne Shell, el cual fue el intérprete usado en las primeras versiones de Unix y se convirtió en un estándar de facto. 
Al ingresar las órdenes en el emulador, un intérprete de comandos analiza la secuencia de caracteres ingresada y, si la sintaxis de la orden es correcta, la ejecuta, recurriendo para ello a las funciones que ofrece el sistema operativo o el programa que representa, bien sea un gestor de banco de datos, una sesión de FTP, etc. La respuesta al usuario se representa en el monitor, Es una forma de trabajo interactiva, es decir, usuario y máquina se comunican en forma sucesiva."



[Emulador de] Terminal

La Terminal, o el Emulador de Terminal, es básicamente lo que vas a ver en las imágenes que te comparto abajo. 

Es un programa, una interfaz, donde metés comandos (input) para lograr algo en específico (como crear un folder/carpeta, actualizar tu sistema operativo, borrar archivos, etc.). Por eso es importante, porque te va a facilitar muchas cosas en GNU/Linux; la Terminal, es como tu secretaria personal, si lo querés ver así.

Toda Distro (bueno, todo Sistema Operativo, de hecho) tiene su Terminal. ¿Por qué? Porque originalmente, al inicio de la era informática digital, todo se manejaba por medio de comandos escritos, y la Terminal era lo que se usaba (la Terminal es una CLI o Command Line Interface... opera a tu compu por medio de comandos, que son palabras que significan algo en el "lenguaje de compu"). Ahora se incluye en cada SO, porque a nivel de Administrador, es útil.

Emulador de Terminal en Luna OS 3.2.0-51. En el fondo ves el artículo de la Wiki (abierto en Firefox 28.0)
acerca del pleito eterno entre fanboys, por el nombre de GNU/Linux o Linux; meh...
Es como una secre o asistente, precisamente porque te va permite hacer muchas cosas con los privilegios administrativos adecuados, tenés que ser cuidadoso a la hora de usarle, no sea que te cagués en tu Sistema Operativo.

¿Cómo accedés a tu Terminal? Bueno, andá al menú de aplicaciones (Launcher, Activities, Menu, o como se llame según tu Distro), y tipeá "Terminal", lo más probable es que encontrés un icono parecido a este:

Así se mira el Application Menu en Luna OS
(Windows/Super + Barra Espaciadora)
Y en el dock de  aplicaciones activas, vas a encontrar algo como esto:

Esta mierda que ves acá, se llama Plank (el dock o barra de tareas en Luna OS y fue bautizado así en honor al científico alemán, ¿supongo?) y el icono que estamos señalando con el cursor, es el de la Terminal.


¿Te has fijado en el texto baboso ese que sale al inicio de tu Terminal? Bueno, ese texto es el que indica quién está loggueado coen la Sesión de Terminal (cada vez que abrís un programa, iniciás una "sesión" en él) y tu ubicación en Directorio de Linux (como si estuvieras navegando a través de "Mi PC" en Windows XP, por ejemplo, y la barrita de direcciones al tope, te indica dónde estás al momento). 



La -$ es tu indicador o prompt, y siempre aparece cuando la Terminal está disponible para vos.

Como ves, escribí un comando (este es mi Input o Entrada) que no existe (sí, estaba inventando mierda y pensé que ese comando existía, pero aprendí que no, jeje) y le di Enter. Después de dar Enter, Terminal responde (esto es el Output o Salida) en la segunda línea:


"No hay comando llamado 'Terminal', ¿quisiste decir Comando 'Terminal' del paquete 'terminal.app' (universo)?y me vuelve a dar la Línea de Comando, para que siga escribiendo. 



Vamos, que me sacó el dedo la muy desubicada. Luego trato un tal comando "about" (otra vez estaba inventando), y mi Output es el siguiente:



"Comando no encontrado [porque no existe, ¡Vago pendejo!]" y me da otra línea, para seguir intentando. Como sí conozco un par de comandos, escribí uno:



~$ uname -a [y apreto enter]

[y como este comando sí existe, me da el Output esperado para ese comando: la info de mi Usuario, y la Imagen de mi Sistema Operativo -que de hecho es Luna, pero luna es un derivativo de Ubuntu, la hora y fecha: ]
Linux belial-desktop 3.2.0-51-generic #77-Ubuntu SMP Wed Jul 24 20:18:19 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[y luego de haber completado mi orden y haber dado el Output, me da la línea de Comando para seguir escribiendo: ]
belial@belial-desktop:~$



Recordá: un comando es una instrucción que le das a tu Terminal, hecha en palabras/frases específicas que ella entiende. Si no le das una instrucción reconocible por ella, te va a sacar el dedo (en forma figurada), como lo hizo en los primeros dos ejemplos y te va a dar la línea de comando o prompt para seguir escribiendo hasta el fin de los tiempos. ¿Su uso es más fácil de lo que parece, cierto? Sólo tenés que entender esto por ahora, y aprender los primeros comandos básicos que Jimmhy te va a enseñar pronto.



Y esa es toda la aterradora Terminal y su gran magia negra :) 

Comentarios, sugerencias, quejas, puteadas, feedback constructivo o destructivo, ¡adelante!


Carpe Diem.


Si querés saber más caca teórica acerca de la Terminal, mirá el carburo que la Wiki comparte:
"Un emulador de terminal es un programa informático que simula el funcionamiento de un terminal de computadora en cualquier dispositivo de visualización. 
Los emuladores de terminal incorporan características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir secuencias de instrucciones por lotes o (scripts o guiones). Uno de los lenguajes o intérpretes más conocidos, es el Bourne Shell, el cual fue el intérprete usado en las primeras versiones de Unix y se convirtió en un estándar de facto. 
Al ingresar las órdenes en el emulador, un intérprete de comandos analiza la secuencia de caracteres ingresada y, si la sintaxis de la orden es correcta, la ejecuta, recurriendo para ello a las funciones que ofrece el sistema operativo o el programa que representa, bien sea un gestor de banco de datos, una sesión de FTP, etc. La respuesta al usuario se representa en el monitor, Es una forma de trabajo interactiva, es decir, usuario y máquina se comunican en forma sucesiva."



Entradas populares.