Quiero compartir con ustedes, mis queridos lectores, este documento que se intitula «Dame una consola» a travéz del sitio de su autor: OSiUX.
NOTA: Este post posee mucho contenido técnico. No esperen ver una sola imágen que no sea un diagrama en todo el post, están avisados.
dame una consola
Author: | Osiris Alejandro Gomez <osiux [en ] osiux.com.ar> |
---|---|
Licencia: | CC-BY-SA |
Contenidos
¿Qué es una consola?
Suele usarse indistintamente el termino shell, terminal, emulador de terminal, intérprete de comandos.
Se puede decir que es una interface de texto que permite ingresar instrucciones a un programa informático.
¿Por qué usar la consola?
Uno de los principales beneficios es la automatización de las tareas.
Es la interconexión de comandos la mayor ventaja, ya que esto permite escribir rápidamente soluciones que no tienen una aplicación específica que las resuelva.
Está siempre disponible en todas las distribuciones de GNU/Linux, BSD, Unix, etc.
todo es un archivo
En sistemax *nix todo es una archivo, es decir todos los dispositivos, las particiones de disco, CDs, diskettes, tarjeta de sonido, video, etc.
permisos
r = read 4 w = write 2 x = execute 1 # usuario y grupo todo, el resto nada. 770 rwxrwx-- # solo dueño y grupo leer y ejecutar. 550 r-xr-x-- # solo dueño tiene escritura, todos pueden leer. 644 rw--r--r
comandos básicos
man leer el manual, es el mas importante! echo eco, imprime texto en pantalla ls listar archivos y directorios pwd mostrar directorio actual cd cambiar directorio cp copiar rm borrar mv mover mkdir crear directorio cat muestra contenido de un archivo
más comandos
more pagina la salida de un archivo sort ordena wc cuenta cantidad líneas y palabaras grep filtra un texto sed editor de texto en línea awk procesa texto find busca archivos chmod cambia permisos chown cambia el propietario de un archivo alias define un alias para un comando ps muestra procesos en ejecucion
stdinput
En lugar de tipear podemos enviar un archivo como la entrada estandard de un comando.
mail osiux@osiux.com.ar < archivo.txt
stdoutput
Podemos almacenar en un archivo el resultado de la ejecución de un comando.
# sobreescribe ls *.png >lista.txt # agrega ls *.txt >>lista.txt
pipe
Convertir la salida standard de un comando en la entrada standard de otro comando permite conectar procesos.
ls | sort
expresiones regulares
[a-z] rango de la *a* a la *z* [A-Z] rango de la *A* a la *Z* [0-9] rango de 0 a 9 [^..] negación ^ principio de línea $ fin de línea . cualquier caracter ? cero o una aparición * ninguna o muchas repeticiones + una o mas repeticiones
aplicaciones
mutt, pine, fetchmail reminder, wyrd vim, emacs, joe, nano, mcedit, vim-outliner w3m, lynx, elinks, rtorrent, newsbeuter freetalk, cabber, irssi, weechat, center-im moc, rippit, aumix, alsamixer ftp, ncftp, wget, httrack mc, rsync, rdiff-backup vlc, mplayer
más aplicaciones
ssh, telnet, screen, ajaxterm tig, git, svn, bzr, mercurial mysql, msqldump python, ipython, bpython graphviz, imagemagick, gnuplot parted, testdisk, dd, partimage gnupg, dmsetup, bcrypt, truecrypt htop, ethtool, netcat, nmap diff, patch, make, base64, vim-diff vnstat, iftop, nload, wicd-curses pdf2text, html2text, python-docutils, rst2pdf
vim
Esc cambia a modo visual a agregar texto posición actual A agregar texto al final línea i inserta en la posición actual I inserta al inicio de la línea r reemplazar un caracter R modo reemplazar x borra caracter a la derecha X borra caracter a la izquierda y copiar p pegar
más vim
d eliminar . repite última función : cambia a modo comando :q salir si no hubo cambios :q! salir sin guardar cambios :wq guardar y salir :e editar archivo :. línea actual :1,. desde primer línea a la actual :.,$ desde línea actual a la última :5,15 desde línea 5 a la número 15
telnet mail
telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
220 branca ESMTP Postfix (Debian/GNU)
HELO branca.osiux.com.ar MAIL FROM: osiris@branca.osiux.com.ar RCPT TO: osiux@branca.osiux.com.ar DATA Subject: prueba correo local usando telnet nero cuando nos tomamos unos fernets? . 250 2.0.0 Ok: queued as 6626586DE6 QUIT
telnet web
telnet google.com 80 Trying 209.85.195.104... Connected to google.com. GET / HTTP/1.0 302 Found Location: http://www.google.com.ar/ Content-Type: text/html; charset=UTF-8 <HTML><HEAD><TITLE>302 Moved</TITLE></HEAD><BODY> <H1>302 Moved</H1>The document has moved <A HREF="http://www.google.com.ar/">here</A>. </BODY></HTML> Connection closed by foreign host.
imagemagick
for i in *.jpg do convert -filter cubic -resize 640 $i 640-$i done
graphviz
digraph grafo { a -> b; b -> c; d -> c; e -> b; } dot -Tpng grafo.dot >grafo.png
gnuplot
ping -c10 google.com | grep "icmp_seq" \ | tr "=" " " | awk '{print $7,$11}' >ping.dat echo 'set title "ping" \ set xlabel "milisegundos" \ set ylabel "secuencia" \ set term png \ set output "ping.png" \ plot "ping.dat" using 1:2 with lines \ quit ' >ping.plt gnuplot ping.plt
rst2pdf
rst2pdf dame-una-consola.txt