Mostrando entradas con la etiqueta Bash. Mostrar todas las entradas
Mostrando entradas con la etiqueta Bash. Mostrar todas las entradas

miércoles, 20 de noviembre de 2024

AutoSamba (bash script) Samba 4 AD DC en Fedora 40

Prueba de un script bash que automatiza el proceso de creación de un Samba4 Active Directory Domain Controller en Fedora 40 Linux. El script actualiza el sistema, instala dependencias y otros paquetes necesarios para la infraestructura básica (DHCP, DNS, NTP, Kerberos, SSSD, etc.) y luego realiza el domain provision con los valores que le proporcionamos al inicio del mismo (FQDN y password del usuario administrator).




viernes, 22 de mayo de 2015

asciinema, una solución elegante y rápida para grabar y compartir el terminal

asciinema es una solución libre que nos permite grabar sesiones de trabajo en el y compartirlas luego en la web.Graba justo donde vamos a trabajar y antes de comenzar ejecutaremos el comando asciinema rec. Para finalizar enviamos la combinación Ctrl-D o el comando exit. 

Al reproducir grabaciones que otros han compartido podemos pausarla y copiar comandos que deseamos probar en nuestro sistema, ya que se trata solo de texto y no de una imagen o mapa de bits.


jueves, 20 de noviembre de 2014

Colores de los ficheros en un terminal

Aunque hayas usado poco el terminal, de seguro te has dado cuenta de que al ejecutar comandos como ls la salida resulta bastante colorida si estás en una ruta (pwd) donde hay una gran variedad de tipos de ficheros y también carpetas. Esto se debe a que por defecto el terminal sin importar la aplicación que uses (gnome-terminal, xterm, etc.) toma de un fichero los parámetros para dar ese colorido a la salida y ayudarnos a diferenciar rápidamente el tipo de archivos que estamos visualizando.

El fichero en cuestión es /etc/DIR_COLORS. El mismo contiene la definición de los diferentes tipos de terminales que son "colorizables", seguido de los mime type de los archivos y sus correspondientes código de colores que se encuentran almacenados en la variable $LS_COLORS.


martes, 3 de diciembre de 2013

Fix Ubuntu, sencillo pero poderoso script para recuperar la privacidad

Si eres usuario de Ubuntu en su versión 12.10 o más reciente (y particularmente estás usando Unity), cuando escribes en el dash para hacer una búsqueda, abrir una aplicación o un archivo en tu computadora, esos criterios de búsqueda son enviados a una serie de terceros que, en la mayoría de los casos, lo usan como retroalimentación para enviarnos publicidad personalizada.

Unity, en vez de proteger la privacidad de sus usuarios, hace todo lo contrario. Y para combatir este inconveniente, Micah Lee, entusiasta de la privacidad, ha creado un script que "cura" a Ubuntu de este mal.


martes, 27 de noviembre de 2012

Entendiendo el comando touch

Cada archivo en GNU/Linux está asociado con timestamps, los cuales especifican la última vez que fue accesaro, modificado y cambiado. Siempre que creamos un fichero, o modificamos uno existente o sus atributos, esos timestamps son actualizados automáticamente. Vía TheGeekStuff veremos que el comando touch es usado para cambiar estos timestamps (access time, modification time, y change time de un fichero). 

Crear un archivo vacío
Podemos crear un archivo vacío usando el comando touch. El siguiente ejemplo crearemos un archivo de cero bytes.
[fraterneo@rainbow ~]$ touch archivo01.txt


miércoles, 19 de septiembre de 2012

Entendiendo el Shell - Post extra (ñapa)

Bueno, realmente el Shell Bash tiene muchísimas opciones y características y a medida que se profundiza en ellas más interesantes se vuelven. Les traigo este post de ñapa con funciones del Shell que quizás no conocías: El Shell tiene control de trabajos: La habilidad para ejecutar comandos en segundo y en primer plano. Un trabajo es uno o varios comandos que ocupan al Shell en un momento determinado. Cuando ejecutamos un comando interactivo, el Shell actual lo trata como un trabajo. Una vez el comando es completado, el trabajo asociado desaparece. 

Los trabajos tareas están a un nivel más alto que los procesos en Linux; el sistema operativo no sabe nada acerca de ellos. Los trabajos son construidos propiamente por el Shell. 



jueves, 13 de septiembre de 2012

Entendiendo el Shell - Parte 5 (Final)

Con esta entrega finalizo esta serie de posts sobre el Shell de GNU/Linux, la cual ha cubierto los aspectos básicos e importantes del mismo. Recordemos que dominar la línea de comandos nos hace mas productivos. Entrando en el tema, el Shell (Bash) nos permite usar nuevamente comandos que hemos ejecutado antes. Estos comandos se encuentran en el historial del Shell. Algunas de las opciones de que dispone el comando history son las siguientes.
history  Mostrar el historial completo
history N  Mostrar los N comandos mas recientes del historial
history -c  Limpiar o borrar el hisotiral 
!!   Ejecutar el comando anterior
!N   Ejecutar el comando N del hisotrial
!-N   Ejecutar el comando que ejecutamos hace N comandos
!$   Representa el ultimo parametro del comando anteior; genial para cersiorarnos de que archivos a eliminar esten presentes antes de borrarlos:
!*  Representa todos los parametros del comando anterior


martes, 11 de septiembre de 2012

Entendiendo el Shell - Parte 4

Ya nos acercamos a la parte final de esta serie sobre el Shell con esta penúltima entrega. Esta vez estaremos viendo los siguientes aspectos, primero: Redireccionamiento de entrada/salida: El Shell puede redireccionar la entrada, la salida y los errores estándar hacia y desde archivos. En otras palabras, cualquier comando que lea desde la entrada estándar puede tener dicha entrada desde un archivo haciendo uso del operador <.
fraterneo@rainbow:~$ comando < entrada.txt
De la misma forma cualquier comando que escribe en la salida estándar puede enviar su salida a un archivo:
fraterneo@rainbow:~$ comando > salida.txt


lunes, 10 de septiembre de 2012

Entendiendo el Shell - Parte 3

Hoy veremos otras características del Shell Bash, la primera de ellas: Expansión de corchetes. Al igual que los comodines, las expresiones entre corchetes {} también son expandidas para ser convertidas en múltiples argumentos para los comandos. La expresión separada por comas {X,YY,ZZZ} se expande primero a X, luego a YY y finalmente a ZZZ, cuando la usamos en un comando como el siguiente:
fraterneo@rainbow:~$ echo ja{X,YY,ZZZ}
jaX jaYY jaZZZ
Los corchetes trabajan con cualquier cadena, lo que no sucede con los comodines, los cuales están limitados a nombres de ficheros. En el ejemplo anterior funciona sin importar cuales ficheros hay en el directorio actual. 


Entendiendo el Shell - Parte 2

Siguiendo con esta serie, el Shell hace más que simplemente ejecutar comandos. Y es que constituye una poderosa con características formidables para hacer esta tarea fácil: comodines para el pareo de nombres de archivos, un historial de comandos para invocar comandos previamente ejecutados, tuberías para enviar la salida de un comando como la entrada de otro comando, variables para almacenar valores para su uso en el Shell, y muchas otras. Nos tomaremos un tiempo para revisar y aprender estas características, ya que las mismas nos harán más rápidos y productivos en Linux. 



sábado, 8 de septiembre de 2012

Entendiendo el Shell - Parte 1

Esta será una pequeña serie de varios post para introducir los conceptos básicos y prácticos del Shell. Enfocado en los principiantes, veremos varios puntos importantes que quizás ya concen y otras características del Shell y Bash que probablemente eran desconocidas para muchos. Espero sea de su agrado y edificación.

Para poder ejecutar comandos en un sistema tipo Unix como lo es GNU/Linus, necesitamos de un "lugar" para escirbirlos. Ese lugar es llamado el Shell, el cual es la interfaz de línea de comandos de Linux. Escribirmos un comando, presionamos Enter, y el Shell ejecuta cualquier programa o programas requerido. Por ejemplo, para ver quién está logueado, podemos ejecutar el siguiente comando en un Shell:
fraterneo@rainbow2 ~ $ who
laisha    tty8         2012-09-08 16:58 (:0)
fraterneo pts/0        2012-09-08 21:01 (rainbow.local)
fraterneo pts/2        2012-09-08 21:14 (192.168.24.102)


domingo, 22 de julio de 2012

Entendiendo el comando compgen

El comando compgen es un comando interno de bash que nos permite visualizar los comandos, funciones y aliases disponibles para el usuario actual. Es decir, que compgen es un comando que muestra comandos.

Por lo general solo basta presionar TAB dos veces para mostrar el total de comandos disponibles actualmente y la opción de mostrarlos todos listados y vamos presionando la barra espaciadora para ir desplegando la larga lista.


domingo, 16 de octubre de 2011

Usando parametros posicionales en scripts Bash

Cuando ejecutamos un shell script puede ser útil pasarle argumentos o parámetros a dicho script (por ejemplo, el nombre del fichero sobre el cual queremos que el script trabaje o procese. Estos parámetros son referidos al script de acuerdo a la posición que toman en la línea de comandos: $0 es el nombre del comando o script en sí mismo, $1 es el primer parámetro, $2 es el segundo, y así sucesivamente. No podemos cambiar los valores de esas variables porque son un caso especial (normalmente las variables no pueden comenzar con un dígito, por lo que el shell no interpreta "1=hola" como una asignación de variable).

Un script no puede saber cuántos parámetros posicionales utilizará, por lo que si no controlamos la entrada adecuada de los mismos es problable que el script no trabaje como esperamos.



jueves, 13 de octubre de 2011

Sincronizacion automatica de folder local con un Servidor FTP (Reverse Mirror)

Gracias a la posibilidad de crear scripts en Bash muchas tareas que requieren cierta recurrencia, pero que en cada iteración el proceso se repite de la misma forma, aunque muchas otras no, se hacen mucho más fácil de ejecutar. También crear un script nos da la posibildiad de ejecutar una tarea que requiere el uso de varios comandos y opciones difíciles de memorizar. Bash nos permite mediante scripts hacer dichas tareas de forma transparente para el usuario común, pero le da al Sys Admin grandes ventajas y ahorro de tiempo.

Un trabajito que he tenido últimamente ha sido editar unos archivos de audio y subirlos a un hosting para luego ser publicados en un sitio web en modalidad de podcasts. Luego de editarlos (en Audacity) tengo que loguearme en la página del hosting, buscar el explorador de archivos y subir uno a uno los archivos de audio (que a veces son dos o tres) pero que van de 35 a 50 MB's.

Bueno, en fin, esto es aplicable a cualquier situación similar sin importar la cantidad o el tamaño de los archivos.



domingo, 9 de octubre de 2011

Como integrar NotifyOSD en tus scripts Bash

La librería libnotify (Notify OSD) constituye una excelente forma en la que el sistema nos mantiene informados de lo que acontece sin interrumpir lo que estamos haciendo. Distintas aplicaciones lo utilizan (Pidgin, Banshee, RadioTray, VLC, etc.), si lo deseamos así, para informarnos de sus diferentes estados y acontecimientos que nos puedan interesar.

Lo que es todavía mejor es que nosotros mismos podemos utilizarlo para nuestras aplicaciones, scripts, etc., e informar por las notificaciones cualquier cosa que deseemos.


jueves, 15 de septiembre de 2011

Separador de comandos para el terminal bash GNU/Linux


Muchas veces trabajar en el terminal se vuelve un poco confuso, especialmente cuando entramos comandos que devuelven una salida bastante rica o son tantos comandos que ya hemos perdido el hilo de lo que hemos hecho. Con este truco podremos un separador (línea separadora) entre cada prompt, lo que nos permite ver con claridad cada comando que hemos entrado con su salida correspondiente. Como valor agregado, también al final de dicha línea del lado derecho del terminal nos muestra la hora en la que entramos cada comando (y cada comando resaltado con negrita).

Esto nos viene gracias a Emilis Dambauskas, un programador lituano y usuario de GNU/Linux que decidió enfrentar este problema.


lunes, 29 de agosto de 2011

Actualizar Ubuntu automáticamente con APT y CRON [Repost]


Hace unos meses vimos cómo crear un ALIAS para actualizar Ubuntu de forma rápida, pero como administradores de sistemas tenemos muchas tareas que hacer, y GNU/Linux tiene una amplia gama de herramientas para ayudarnos a hacer esas tareas lo más automatizadas posible. Entre ellas tenemos los scripts de Bash y los comandos at y cron. De estas cron y los scripts constituyen el dúo más utilizado entre los administradores. Y es que cron, utilizando scripts o no, en verdad nos hace la vida más cómoda cuando lo sabemos utilizar.

A continuación veremos como programar una tarea en cron para actualizar los paquetes del sistema. El mismo procedimiento podría utilizarse para actualizar la versión completa o para hacer un dist-upgrade cuando hay kernel nuevo para instalar o versiones completamente nuevas de aplicaciones instaladas, haciendo los ajustes necesarios. Además es muy posible que funcione en Fedora con YUM haciendo los ajuses pertinentes. Todo esto lo haremos con APT, el gestor de paquetes más utilizado en Ubuntu y Debian.


viernes, 26 de agosto de 2011

Deshabilitar los Login Messages en Ubuntu

Aunque en Fedora y otras distros, por defecto, no nos encontramos con estos mensajes, en Ubuntu y otras sí. Me refiero a los Login Messages. No son más que los mensajes que aparecen cuando los logueamos en Ubuntu en un tty o en un host remoto mediante SSH. Meramente es información del sistema, información sobre hardware (BIOS), noticias de garantía, un nuevo lanzamiento o actualizaciones dispoibles, etc. Un ejemplo de ello es esta salida en un terminal al hacer login remoto con SSH.


fraterneo@rainbow:~$ ssh -X fraterneo@192.168.24.101fraterneo@192.168.24.101's password:
Linux rainbow2 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation: https://help.ubuntu.com/

238 packages can be updated.
129 updates are security updates.

New release 'natty' available.
Run 'do-release-upgrade' to upgrade to it.

No mail.
Last login: Thu Aug 25 09:36:01 2011 from rainbow.local
fraterneo@rainbow2:~$




domingo, 1 de mayo de 2011

Entendiendo el comando screen

El comando screen nos ofrece la oportunidad de tener varios procesos (comandos, scripts, etc.) separados desde una misma sesión en terminal. Cuando la sesión es separada el proceso iniciado originalmente por screen es administrado por éste de forma transparente. Luego, más adelante, podemos retomar dichas sesiones nuevamente y veremos que el proceso que iniciamos en dicha terminal está justo como lo dejamos.

Manos a la obra...

Convencionalmente en una terminal escribimos el nombre del comando y presionamos Enter. Inmediatamente, si el comando existe (en nuestro sistema) bash lo llama y lo ejecuta directamente en el terminal donde estamos y, a menos que lo pasemos a segundo plano (& al final del comando) no podremos hacer otra cosa hasta que terminemos con dicho comando.


viernes, 8 de abril de 2011

Auto completar en Yum con TAB Auto Complete en Fedora/CentOS

La característica auto complete (auto completar) de Bourne Again SHell hace a bash uno de los más amigables y amados shells en GNU/Linux. Solo presionando la tecla Tab podemos completar comandos y nombres de ficheros. Al presionar Tab dos veces todos los ficheros y directorios son mostrados. En Debian, Ubuntu y muchas otras distros viene habilitado por defecto, pero no así en Fedora y posiblemente en algunas otras.

Tab auto complete resulta muy útil a la hora de utilizar comandos tan frecuentes como ls, cd, cp, mv, y otros comandos. Para tener auto complete para Yum en Fedora/CentOS necesitamos instalar el paquete bash-completion:

# yum install -y bash-completion

Cerramos la sesión (logout) y entramos nuevamente (login). Listo. Ya tenemos auto complete!


Más recursos: IF!10 | Linux