Bash
|
Esta sección es un esbozo en construcción. Se aprecian tus aportes y paciencia |
Esta pagina se hace con el fin de ayudar al principiante en el manejo de sistemas operativos basados en linux a través del bash que es una herramienta poderosa para la administración de las diferentes aplicaciones de linux.
Separación de Palabras (Word Splitting)
Todos nos hemos enfrentado alguna vez en bash a una situación en la que necesitamos procesar un archivo o una variable que contenga espacios en sus valores, p.e.
Hola Mundo Hello World
Si suponemos que esas dos líneas son el contenido de un archivo texto.txt y queremos mostrar las dos líneas seguramente haríamos un script como:
for linea in (cat texto.tx) do echo $linea done
Pero en lugar de mostrarnos las líneas como las escribimos obtendríamos:
Hola Mundo Hello World
Para superar este problema, que en realidad es una característica de bash denominada Word Splitting y permite utilizar un caracter como delimitador (controlado por el valor de la variable $IFS), por defecto estos caracteres son " " (espacio), \t (tabulador) y \n (retorno de carro), pero esto se puede modificar cambiando el valor de esta variable, por ejemplo si modificamos el valor de esta variable en nuestro script
$IFS=H for linea in (cat texto.tx) do echo $linea done
Obtendremos:
H ola Mundo H ello World
Por lo tanto si queremos mostrar el listado como aparece en el archivo utilizamos un caracter que no tenga relación o que no se utilice en el archivo, p.e.:
$IFS=* for linea in (cat texto.tx) do echo $linea done
De esta manera nuestro script ahora si mostrará el listado como lo necesitabamos.
Lista de comandos
Bash Completion
Este es un fichero script ubicado en /etc/bash_completion que nos sirve dentro del sistema para autocompletar comandos con la tecla TAB. Por ejemplo, si hemos escrito así el comando apt:
$ apt-
Y luego oprimimos la tecla TAB 2 veces, nos aparecen las siguientes opciones de comandos:
apt-cache apt-config apt-ftparchive apt-key apt-cdrom apt-extracttemplates apt-get apt-sortpkgs
Entonces para hacer correr dicho fichero script es necesario que en cualquier cuenta de usuario en su fichero, por ejemplo en /home/usuario/.bashrc agregamos la siguiente linea:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fiLuego podríamos ejecutar el interprete así:
$ bash $
Y de esta manera tendríamos corriendo el script.
Personalizar los atajos de teclado
Para personalizar los atajos de teclado en Bash usted debe hacer modificaciones en el archivo de configuración inputrc, mas información sobre el tema la puede encontrar en nuestra pagina al respecto inputrc
Proceso de Señales
- Matando un proceso atorado
ps −ef | grep procesoatorado kill -9 PIDdelproceso
- Utilidades para procesar señales
man -k signal kill -l man 7 signal (listado de señales disponibles)
Ctrl+C : Es la señal de interrupción, envía un SIGINT (interrupción desde el teclado hacia el trabajo corriendo)
Ctrl+Y : Causa que un proceso se pare cuando intenta leer una entrada desde la terminal. El control retorna a la shell.
- El usuario puede ejecutar el proceso en primer o segundo plano o matar el proceso. esta capacidad esta disponible solo en algunos sistemas operativos.
Ctrl+Z : Esta es a señal de suspensión, envía un SIGTSTOP a un programa que esta corriendo y con esto lo detiene y devuelve el control a la shell
Trampas
Puede haber situaciones en las cuales no se quiera que los usuarios de los scripts salgan usando una señal de terminación desde el teclado , por ejemplo debido a que alguna entrada debe ser dada por el usuario o por que alguna limpieza se debe hacer. la sintaxis de trampa o trap es la siguiente:
- trap [COMMANDOS] [SEÑALES]
Scripting Basico
- Hola mundo
echo Hola Mundo
- Backup
tar -cZf /var/mibackup.tgz /home/mi/
