sed es un “editor de textos” para el filtrado y la transformación de textos. Escribo “editor de texto” entre comillas pues en realidad sed no trabaja con cadenas de caracteres sino con “flujos”, la diferencia con los editores de textos clásicos (interactivos) es que sed acepta como entrada estándar un archivo o cualquier otro stream; resultado que es procesado y devuelto a la salida estándar (vea más acerca de stdin, stdout y stderr aquí)
ls -l nos da bastante información acerca de nuestros archivos y/o directorios. Sin embargo, cuando esa información no es suficiente y queremos más, de seguro que el comando stat nos ayudará.
Como debería ser sabido, todo en Unix se trata como archivo (archivos propiamente dichos, directorios, dispositivos, etc). El comando stat nos muestra el estado de archivos y del sistema de archivos tal como se podrá ver en este artículo.
Se dice que el viejazo, fenómeno ocurrido en personas del sexo masculino, también llamado segunda adolescencia se produce a las cuatro décadas. UNIX es pronto a cumplir esa edad, aproximadamente por el mes de agosto, sin embargo no creo que se trate de una segunda adolescencia, pues Unix nunca envejeció, al contrario, cada día está más joven.
La historia cuenta que allá por 1969, días después de la llegada del hombre a la luna (si es alguien cree en ese discutible suceso) un programador llamdo Ken Thomson de Bell Laboratories (subsidiaria de AT&T) aprovechando la susencia de su mujer e hijo por vacaciones (que casualidad ¿no?) escribió la primera versión de Unix en un lenguaje ensamblador.
En marzo del mismo año, los mismos laboratorios habían renunciado a seguir con un ambicioso proyecto de sistema de tiempo compartido llamado Multics (Multiplexed Information and Computer Service), del que Thomson aplicó algunos principios y como broma al proyecto anterior denominó Unics (reemplazando la primer paralabra por Thomson Uniplexed) a su proyecto.
Como AT&T Bell vió que el proyecto tenía futuro decidió apostar al proyecto e incorporar a varios programadores de los cuales se destaca Brian Kernighan. Por motivos desconocidos UNICS pasa llamarse UNIX y va tomando forma adquiriendo nuvas funcionalidades y aplicaciones como cat, chmod, chown, cp, ls, mv, who, wc, etc. Si bien el desarrollo era rápido, el principal cuello de botella estaba en Ensamblador, es así que aparece Dennis Ritchie quien con colaboración de Kernighan escribe un lenguaje de más alto nivel, añadiendo nuevas funcionalidades y más abstracción que lo que ofrecía el lenguaje B. El éxito fue rotundo y para 1973 todo UNIX ya estaba re-escrito en C.
Requisito de un tema laboral fue crear de urgencia unos backups full e incrementales de un repositorio. Como siempre estos requerimientos se requieren para ayer y son para salvar cabezas cuando las papas queman.
Debido al gran volumen de datos, como estrategia de backups se decidió realizar un backup full mensualmente y un backup incremental diario.
A tal fin, se escribieron dos scripts, el primero de ellos, que dado un directorio crea un tar comprimido del mismo. Y el segundo, el que se ejecuta diariamente, que se encarga de verificar la fecha de modificación del último backup full del directorio y a partir de la misma crea un tar comprimido con los cambios desde entonces.
Nada de otro mundo, dos scripts sencillos, pero que se dejan a vuestra disposición por si las moscas.
En esta publicación lo que sobran son las palabras y vamos directo a los hechos. A continuación veremos varios ejemplos del uso del comando grep.
Usamos grep para buscar una palabra dentro de un archivo en Linux, pero… ¿hasta donde podemos llegar con su uso?
vi es un editor de texto de pantalla completa clásico de UNIX. Como no tiene interfaz grafica puede usarse en cualquier tipo de terminal. Su uso se torna “obligatorio” cuando debes administrar servidores a los que solo puedes acceder por consola (telnet o ssh).
Si bien existen otras alternativas más versátiles, como emacs, pico (nano), etc., vi está presente en todos los UNIX, requiere pocos recursos y se usa mucho en administración (para programar y en situaciones de emergencia)
Con las razones antes expuestas es prácticamente imprescindible que tengas y/o adquieras algún conocimiento de vi.
ifconfig es el comando utilizado para configurar las placas de red. Es posible que tu distribución de Linux lo haga todo por si sola, o bien, cuando lo haces manualmente recurres a un interfaz gráfica.
De todas formas, ifconfig es ampliamente utilizado y no solo en Linux, sino en la mayoría de los clones de UNIX.
A continuación veremos algunos ejemplos del uso de ifconfig.
Las hojas de referencia son todo un clásico en este blog, recuerda sino:
En esta ocasión nuestra cheat sheet es muy breve y pequeña, pero tiene todo lo que tiene que tener para que no te confundas más al editar el cron de tu Linux o cualquier otro clon de UNIX.
El objetivo de un depurador es que le permite ver lo que está sucediendo dentro de otro programa mientras se ejecuta. Es útil para averiguar qué estaba haciendo otro programa en el momento en que “pinchó”. La mayoría de gente recomienda GNU gdb, Nemiver, valgrind o algún IDE como el Eclipse. Lo cierto, por increíble que parezca, es que mucha gente utiliza el viejo y querido printf(), por más que no sea la forma correcta y ortodoxa de debuguear.
Para terminar el día (y el fin de semana) os dejo otra publicación sencilla como la anterior, pero de mucha utilidad para novatos e incluso para no tan novatos.
El tema a tratar, el uso del más que conocido comando cd. Esta explicación vale para Linux y la mayoría de los sistemas “tipo” o “basados” en UNIX.