Programación para La Administración de Sistemas
Programación para La Administración de Sistemas
Programación para La Administración de Sistemas
EXAMEN tema 1 al 6. No cae nada del tema 7 al 9. Pero hasta el 7 inclusive merece la pena
leerlo.
1. ¿Qué es Bash?
2. ¿Qué es PowerShell?
3. ¿Qué es SSH?
● Ventajas:
○ Escalabilidad: Permite ajustar los recursos según la demanda.
○ Accesibilidad: Acceso a los datos desde cualquier lugar.
○ Costo: Reduce los costos de inversión inicial y mantenimiento de hardware.
● Desventajas:
○ Dependencia de Internet: Requiere una conexión a internet constante.
○ Seguridad: Posibles problemas de seguridad y privacidad si no se gestionan
adecuadamente.
○ Control: Menor control sobre la infraestructura física.
Bash:
Poweb Shell:
Programación para la Administración de Sistemas
TEMA 1. INTRODUCCIÓN A LA ADMINISTRACIÓN DE
SISTEMAS
Introducción:
La elección de uno u otro debe estar marcada por las necesidades de la aplicación, la
organización y los usuarios.
Por ejemplo, Linux es una buena opción para una aplicación nueva, diseñada
con una arquitectura nativa en la nube, gracias al soporte nativo de
contenedores.
En el caso de una empresa con una gran base de usuarios que necesitan una
suite ofimática y acceso a varias herramientas corporativas, Windows parte con
la ventaja de facilitar la administración de políticas de seguridad de manera
centralizada.
2. Seguridad
3. Compatibilidad y Software
4. Facilidad de Uso
● Windows: Tiene una interfaz de usuario gráfica (GUI) familiar y fácil de usar, que
es accesible para usuarios con poco conocimiento técnico.
● Linux: Aunque las distribuciones modernas han mejorado mucho en términos de
facilidad de uso y GUIs, generalmente requiere más conocimiento técnico y
familiaridad con la línea de comandos.
5. Estabilidad y Rendimiento
7. Comunidad y Soporte
Conclusión
Distribuciones de linux:
La licencia varía de una distribución a otra: aunque Linux es de código abierto, hay
distribuciones comerciales que se ofrecen con contratos de soporte. Compañías como
SUSE o RedHat no cobran por el sistema operativo, sino por el soporte que ofrecen a
sus clientes.
Entre las aplicaciones incluidas en casi todas las distribuciones, están las utilidades
GNU. Hay utilidades de manipulación de ficheros y del propio contenido de los ficheros,
de información del sistema operativo, de la sesión, de búsqueda, editores de texto, etc.
Estas utilidades son esenciales a la hora de administrar servidores en la línea de
comandos y para automatizar tareas.
Acceso remoto
Uno de los primeros aspectos que considerar para utilizar un servidor en la nube es el
acceso remoto al mismo. Al tratarse de un servidor en la nube, será necesario contar
con las herramientas necesarias que lo permitan: Telnet, SSH (Secure Shell), Otros
SSH Secure Shell (SSH) es un protocolo de red de cifrado para servicios de red
de operación segura a través de una red no segura. Su aplicación más habitual
es la de inicio de sesión remoto a servidores Linux. SSH proporciona un canal
seguro mediante una arquitectura cliente-servidor. Los sistemas operativos Linux
cuentan habitualmente con un cliente de SSH. En el caso de los clientes
Windows, el cliente más utilizado es el llamado Putty. Se trata de un cliente de
SSH de código abierto y libre.
Este tema servirá de introducción para una de las herramientas de scripting más usadas
en servidores Linux: la shell Bash.
Qué es la shell
Bash: Hay múltiples shells disponibles en entornos Linux y Unix. Aquí se usará Bash, ya
que está disponible prácticamente la totalidad de las distribuciones.
Características de la shell
Funciones
Las funciones son pequeñas subrutinas dentro de un script de shell. Son una forma de
agrupar comandos para su ejecución posterior, usando un solo nombre para referenciar
varias sentencias. Se ejecutan como un comando regular u ordinario. Las funciones de
shell se ejecutan en el contexto de shell actual; es decir, no se crea ningún proceso
nuevo para interpretarlos.
Parámetros
Un parámetro es una entidad que almacena valores. Puede ser un nombre, un número
o un carácter especial. Una variable es un parámetro denotado por un nombre. Un
parámetro se establece si se le ha asignado un valor.
Name: también conocido como identificador, es una palabra que consiste únicamente
en letras, números y guiones bajos y comienza con una letra o un guion bajo. Los
nombres se utilizan para identificar variables y funciones.
```bash
echo $USER
```
```bash
ls .txt
```
```bash
echo file{1,2,3}.txt
```
```bash
```
Field en Bash: unidad de texto que resulta de la expansión realizada por Bash. Estos
campos son utilizados como el nombre del comando y sus argumentos al ejecutar un
comando.
```bash
Las expansiones permiten que la shell Bash sea extremadamente poderosa y flexible,
basados en el contenido actual del sistema y las operaciones definidas por el usuario.
Los fields, resultantes de estas expansiones, son fundamentales para determinar cómo
se ejecutan los comandos, permitiendo una interacción sofisticada con el sistema a
través de la línea de comandos.
Token: es una secuencia de caracteres que la shell considera una unidad. Puede ser
una palabra o un operador.
Control operator: es un token que tiene una función de control. Los más relevantes
son:
● ; se pueden poner dos o más comandos en la misma línea separados por un
punto y coma. Ambas series se ejecutarán secuencialmente y la shell esperará a
que cada comando termine antes de iniciar el siguiente.
● & cuando una línea termina con &, la shell no esperará a que termine el
comando. El comando se ejecutará en segundo plano y el usuario podrá seguir
introduciendo comandos.
● $? el código de salida de la orden anterior se almacena en el parámetro de shell
$?. Este parámetro se utiliza para comprobar el estado de la última orden
ejecutada. Si el valor devuelto por $? es 0, significa que el último comando acabó
con éxito; de lo contrario, el comando falló. El valor concreto depende de cada
utilidad, pero, en todo caso, es un número entero de 8 bits.
● && «and» lógico. El segundo comando se ejecuta solo si el primero tiene éxito.
Por ejemplo, test "$VAR1" = "val1" && echo $VAR1 imprime el valor de la
variable de entorno VAR1, solo si está definida como "val1".
● || «or» lógico. El segundo comando se ejecuta solo cuando la primera orden ha
fallado. Por ejemplo, test "$VAR1" != "val1" || echo "ERROR" imprime el mensaje
de error si VAR1 no contiene "val1".
● todo lo escrito después de es ignorado por la shell por ser un comentario.
Comandos habituales
Comandos de directorio:
pwd : muestra el camino completo del directorio actual.
$ pwd
/etc/apache2/extra
cd : cambia de directorio.
$ cd /etc/apache2
cd ~ : lleva a la carpeta home del usuario.
cd - : lleva a la última ruta.
cd .. : cambia al directorio padre del directorio actual.
Listado de ficheros:
ls : listado de ficheros.
$ ls
httpd.conf.pre-update original
$ ls -al
total 128
bash
Copiar código
Desglose:
Redirección
También es posible añadir contenido al final del contenido actual del fichero:
Por otro lado, se puede usar el resultado de un comando como entrada de otro usando
la funcionalidad de tubería o pipe. Por ejemplo, el siguiente comando muestra el
contenido del fichero de configuración del servidor SSH, pero muestra solo las líneas no
comentadas y ordenadas por orden alfabético:
-v "" para excluir todas las líneas que contienen comentarios (el
Parámetros Posicionales
Vamos a definir una función simple que toma dos argumentos y los compara:
En este ejemplo, `$1` y `$2` son parámetros posicionales que representan el primer y
segundo argumento pasados a la función `comparar_numeros`.
Llamada a la Función
Para usar esta función en un script que solicita al usuario que ingrese dos números:
#!/bin/bash
1. **Solicitar Datos del Usuario**: Se utiliza `read -p` para pedir al usuario que
introduzca dos números. Estos se almacenan en las variables `num1` y `num2`.
2. **Llamada a la Función**: `comparar_numeros $num1 $num2` pasa los valores de
`num1` y `num2` a la función. Dentro de la función, estos valores son accesibles como
`$1` y `$2`.
Este mecanismo de paso de parámetros hace que las funciones en Bash sean
herramientas versátiles para realizar operaciones que dependen de datos de entrada
variables, permitiendo que un mismo bloque de código se utilice para diferentes
entradas de manera eficiente y clara.
1. Sintaxis de Variables
PowerShell
- Utiliza `$` antes del nombre de la variable.
- Tipado dinámico, pero puede especificar tipos.
Bash
- No requiere `$` para declarar, pero sí para acceder al valor.
- No soporta tipos de datos explícitos; todo es tratado como texto, aunque se trata como
números en contextos aritméticos.
variable="Hola Mundo"
numero=20
echo $variable
PowerShell
- Usa `Read-Host` para leer la entrada del usuario.
Bash
- Usa `read` con la opción `-p` para mostrar un mensaje.
3. Mostrar Información
PowerShell
- Usa `Write-Host` para imprimir en consola.
Bash
- Usa `echo` o `printf`.
PowerShell
- Usa `if`, `elseif`, y `else` con llaves `{}`.
- Bucles `for`, `foreach`.
Bash
- Usa `if`, `elif`, `else` con `then` y `fi`.
- Bucles `for`, `while`.
5. Funciones
PowerShell
- Define funciones usando forzosamente la palabra clave `function`, parámetros con
`param`.
function Saludar {
param ($nombre)
Write-Host "Hola, $nombre"
}
Saludar -nombre "Juan"
Bash
- Define funciones directamente, aunque se puede usar la palabra clave function si te es
mas claro y los parámetros accesibles por orden `$1`, `$2`, etc.
function saludar {
echo "Hola, $1"
}
saludar Juan