{"id":63,"date":"2004-12-10T14:49:09","date_gmt":"2004-12-10T21:49:09","guid":{"rendered":"http:\/\/www.gubatron.com\/blog\/?p=63"},"modified":"2004-12-10T14:49:09","modified_gmt":"2004-12-10T21:49:09","slug":"vaciando-el-buffer","status":"publish","type":"post","link":"https:\/\/www.gubatron.com\/blog\/vaciando-el-buffer\/","title":{"rendered":"Vaciando el Buffer"},"content":{"rendered":"\n<p>Este post es un poco para desahogar algunos consejos y tips que he querido tener anotados, y que mejor lugar que el blog, donde mis notas personales pueden ayudar a otros.<\/p>\n<p>En mi &#250;ltimas asignaciones profesionales he tenido que trabajar en ambientes 100% Linux, esto me ha hecho refrescar viejas lecciones de mis inicios en la universidad, y he aprendido a utilizar linux de una forma m&#225;s eficiente al ver expertos gurus utilizando el shell, cvs, emacs y otras herramientas.<\/p>\n<p>Cuando est&#225;s en el bash (shell) de linux, hay cosas que debes siempre recordar.<\/p>\n<p><strong>&#191;Como ir al directorio donde estaba anteriormente?<\/strong><br \/>\nMuchas veces estas un directorio propio, y quizas debes ir a configurar algo, tienes que cambiar de directorio, y quizas la ruta donde estabas es un poco larga. Hace un tiempo introducieron un comodin para volver al directorio anterior.<\/p>\n<p><code>cd -<br \/>\n<\/code><\/p>\n<p><strong>&#191;Como volver a escribir un comando que ya escribi anteriorente?<\/strong><br \/>\nMuchas veces tenemos que repetir largos comandos que ya hemos escrito, para escudri&#241;ar en la &#8220;history&#8221; del shell, la cual almacena todos los comandos introducidos&#8230; Presiona Ctrl+R, y empieza a escribir el comando, esta funcion empezar&#225; a mostrarte comandos similares tipeados anteriorente, cuando encuentres tu comando puedes elegir que te lo termine de copiar.<\/p>\n<p><strong>Ahora todo es con SSH<\/strong><br \/>\nSi eres un usuario linux desde hace tiempo, y aun utilizas rsh, DEJA DE USARLO!!!, no es nada seguro. Puedes utilizar ssh para muchas cosas, y lo mejor de todo es que la comunicaci&#243;n es encriptada, y hasta puedes invocar programas X, si tienes tu variable DISPLAY bien configurada.<\/p>\n<p>Algunos comandos<\/p>\n<p>scp <a href=\"mailto:usuario@maquina:\/ruta\/archivo_origen\">usuario@maquina:\/ruta\/archivo_origen<\/a> .<br \/>\n(Copia un archivo desde una maquina remota al directorio local)<\/p>\n<p>scp archivo_local <a href=\"mailto:usuario@maquina_remota:\/ruta_donde_puede_caer\">usuario@maquina_remota:\/ruta_donde_puede_caer<\/a><br \/>\n(Copia un archivo local a una maquina remota)<\/p>\n<p><strong>Silenciando la salida de un programa<\/strong><br \/>\nSupongamos que solo quieres ver los mensajes de error que genera un programa<\/p>\n<p># programa 1&gt;\/dev\/null<\/p>\n<p>Recordemos que el file descriptor 1 en linux es stdout, este programa si tiene algun error de sistema, va a devolver unicamente esos errores.<\/p>\n<p># prograa 2&gt; \/dev\/null<\/p>\n<p>Este es el caso contrario, utilizando el file descriptor 2, que en linux es stderr, si le haces esto a tu programa, unicamente mostrara la salida normal del prograna, pero los errores no aparer&#237;an.<\/p>\n<p><strong>grep &#8211; Mi mejor amigo<\/strong><br \/>\nAprende a usar grep, y veras que puedes hacer demasiado con este comando.<br \/>\nEste comando devuelve resultados relacionados con texto encontrado dentro de archivos, o dentro de la salida de un programa ejecutado anteriormente. Tambien puede devolver lo NO ENCONTRADO.<\/p>\n<p>Supongamos que quieres ver que archivos fueron modificados durante Marzo<\/p>\n<p>#ls -la | grep Nov<\/p>\n<p>o ponte que quieres todos los archivos que no sean Selina<br \/>\n#ls -la | grep -e Nov (no estoy seguro se es -e, de exclude)<\/p>\n<p><strong>Como escribir en un archivo sin utilizar ningun editor<\/strong><br \/>\nA veces necesitas escribir un archivo muy corto, y no te quieres molestar en abrir<\/p>\n<p># cat &gt; archivo_corto<br \/>\nblah blah blah<br \/>\nbalh blah (Presionas Ctrl+D)<\/p>\n<p><strong>Syntax Highlighting en eMacs<\/strong><br \/>\nF10, o, s<\/p>\n<p><strong>Otros tips<\/strong><br \/>\nA medida que vaya acordandome de cosas utiles voy a actualizar este post. De momento recomiendo aprovechar mucho el uso de variables globales, el uso de aliases, tabulacion para completar las rutas de los directorios y archivos a medida que escribes, wget para bajar archivos de internet, aprender a programar lo basico en bash scripting es muy util, aprovechar cronjobs. Recordar que las nuevas versiones de MYSQL y PGSQL en sus lineas de comando ahora completan el codigo, util por si no te sabes el nombre de l prograa.<\/p>\n<p>Aprende a hacer .\/configure, make, make install, pasos genericos para compilar e instalar programas que vienen con el c&#243;digo abierto, y para muchas instalaciones similares en USA.<\/p>\n<p>Si estas programando en perl y necesitas instalar un modulo, escribe &#8220;cpan&#8221; y preparate a tener todos los modulos de CPAN a tu disposicion.<\/p>\n<p>Entre otras cosas aprende a utilizar un sistema de control de versiones codigo fuentes para programadores concurrentes en el mismo proyecto. Nosotros utilizamos CVS, pero la herramienta que se va a imponer es SVN o Subversion, tiene todas las funcionalidades de CVS y arreglar problemas de los que se quejan los usuarios de CVS.<\/p>\n<p>Averigua sobre programas como<br \/>\nwc<br \/>\nsed<br \/>\ny aprende a utilizarlos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este post es un poco para desahogar algunos consejos y tips que he querido tener anotados, y que mejor lugar que el blog, donde mis notas personales pueden ayudar a otros. En mi &#250;ltimas asignaciones profesionales he tenido que trabajar en ambientes 100% Linux, esto me ha hecho refrescar viejas lecciones de mis inicios en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[33],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-gubatron"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5Unzf-11","jetpack-related-posts":[{"id":566,"url":"https:\/\/www.gubatron.com\/blog\/apache2-enablesendfile\/","url_meta":{"origin":63,"position":0},"title":"Apache2: EnableSendFile","author":"gubatron","date":"August 7, 2007","format":false,"excerpt":"Aunque no recomiendo apache para servir archivos estaticos (demasiado overhead, es mejor que le eches un ojo a nginx o a lighttpd), encontre hoy una directiva que puede eliminar un poco el overhead al hacer una llamada directa al sistema -> sendfile. De momento lo que hice en uno de\u2026","rel":"","context":"In &quot;Geeklife&quot;","block_context":{"text":"Geeklife","link":"https:\/\/www.gubatron.com\/blog\/category\/geeklife\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":130,"url":"https:\/\/www.gubatron.com\/blog\/linux-poder-de-bash-grep-awk\/","url_meta":{"origin":63,"position":1},"title":"Linux: Poder de Bash, Grep, AWK","author":"gubatron","date":"April 3, 2005","format":false,"excerpt":"Si eres un pipiri en linux, te vas a aburrir con esto. Ya con 2 meses o quizas un poco mas de vivir 100% linux, empiezo a probar por mi mismo cosas que recuerdo haber visto en los .bash_history de la cuenta del administrador en mi universidad, ya hace mas\u2026","rel":"","context":"In &quot;Gubatron&quot;","block_context":{"text":"Gubatron","link":"https:\/\/www.gubatron.com\/blog\/category\/gubatron\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":322,"url":"https:\/\/www.gubatron.com\/blog\/un-tip-moribundo-de-kde-dcop\/","url_meta":{"origin":63,"position":2},"title":"Un Tip Moribundo de KDE (dcop)","author":"gubatron","date":"June 7, 2006","format":false,"excerpt":"En un episodio del podcast de wedoit4you.com mencione que uno de los atractivos de KDE es su poder de integracion, en el episodio pasado comente nuevamente sobre el tema y hable de DCOP en KDE. Creo que es hora que ilustre un poco mas como utilizar DCOP (que va a\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":117,"url":"https:\/\/www.gubatron.com\/blog\/el-que-persevera-compila\/","url_meta":{"origin":63,"position":3},"title":"El que persevera\u2026 Compila!","author":"gubatron","date":"March 9, 2005","format":false,"excerpt":"Desde que me pase a Linux, he querido actualizar mi version de The Gimp. The Gimp,en su nueva version requiere Gtk 2.6.0, que a su vez requiere Glib > 2.6.0 (creo), y mi Linux SuSE trae Glib 1.2.23. Total que logico, uno empieza por lo de mas abajo. Me baje\u2026","rel":"","context":"In &quot;Gubatron&quot;","block_context":{"text":"Gubatron","link":"https:\/\/www.gubatron.com\/blog\/category\/gubatron\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":103,"url":"https:\/\/www.gubatron.com\/blog\/si-linux-suse-no-se-quiere-conectar-a-banda-ancha\/","url_meta":{"origin":63,"position":4},"title":"Si Linux SuSE no se quiere conectar a Banda Ancha\u2026","author":"gubatron","date":"January 26, 2005","format":false,"excerpt":"Hace poco tuve un problema muy extrano con mi conexion a Internet en Linux. Yo estoy suscrito a Comcast, ellos te dan un Cable Modem, que esta conectado siempre, el cable modem tiene su login y password configurado, y tu te pegas al cable modem por ethernet o USB. En\u2026","rel":"","context":"In &quot;Gubatron&quot;","block_context":{"text":"Gubatron","link":"https:\/\/www.gubatron.com\/blog\/category\/gubatron\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":360,"url":"https:\/\/www.gubatron.com\/blog\/como-matar-varios-procesos-cuando-killall-no-es-una-opcion\/","url_meta":{"origin":63,"position":5},"title":"Como matar varios procesos cuando killall no es una opcion.","author":"gubatron","date":"August 15, 2006","format":false,"excerpt":"A veces tienes un cronjob que se queda pegado por mucho rato, cuando haces Code: ps aux | grep miPrograma tienes un monton de instancias pegadas!! Intentas hacer killall miPrograma pero no funciona porque quizas es un programa que estas arrancando con un interprete, como python, o php, o perl.\u2026","rel":"","context":"In &quot;Geeklife&quot;","block_context":{"text":"Geeklife","link":"https:\/\/www.gubatron.com\/blog\/category\/geeklife\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":0,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}