En aquest tema, aprendrem com interactuar amb el sistema operatiu utilitzant scripts de Bash. Això inclou la gestió de processos, la manipulació de variables d'entorn, l'ús de comandes del sistema i la interacció amb serveis del sistema.

Conceptes Clau

  1. Variables d'Entorn: Variables que afecten el comportament dels processos en el sistema.
  2. Gestió de Processos: Comandes per iniciar, parar i gestionar processos.
  3. Comandes del Sistema: Comandes que permeten interactuar amb el sistema operatiu.
  4. Serveis del Sistema: Com interactuar amb serveis i dimonis del sistema.

Variables d'Entorn

Les variables d'entorn són variables que afecten el comportament dels processos en el sistema. Poden ser utilitzades per emmagatzemar informació com el directori de treball actual, el camí de cerca de comandes, i altres configuracions del sistema.

Exemples de Variables d'Entorn

# Mostra totes les variables d'entorn
printenv

# Mostra el valor d'una variable d'entorn específica
echo $HOME

# Estableix una nova variable d'entorn
export MY_VAR="Hola, món!"

# Utilitza la variable d'entorn
echo $MY_VAR

Exercici Pràctic

  1. Crea un script que estableixi una variable d'entorn i la mostri per pantalla.
  2. Modifica el script per utilitzar la variable d'entorn en una comanda del sistema.

Solució:

#!/bin/bash
# Estableix una variable d'entorn
export MY_VAR="Hola, món!"

# Mostra la variable d'entorn
echo "El valor de MY_VAR és: $MY_VAR"

# Utilitza la variable d'entorn en una comanda del sistema
echo "El directori de treball actual és: $PWD"

Gestió de Processos

La gestió de processos és una part important de la interacció amb el sistema. Bash proporciona diverses comandes per gestionar processos.

Comandes de Gestió de Processos

  • ps: Mostra una llista dels processos actuals.
  • top: Mostra una vista en temps real dels processos del sistema.
  • kill: Mata un procés específic.
  • bg i fg: Gestiona processos en segon pla i en primer pla.

Exemples de Gestió de Processos

# Mostra una llista dels processos actuals
ps aux

# Mata un procés específic (substitueix PID pel PID del procés)
kill PID

# Envia un procés al segon pla
sleep 100 &
bg

# Porta un procés del segon pla al primer pla
fg %1

Exercici Pràctic

  1. Crea un script que iniciï un procés en segon pla i després el mati.

Solució:

#!/bin/bash
# Inicia un procés en segon pla
sleep 100 &
PROCESS_ID=$!

# Mostra el PID del procés
echo "El PID del procés és: $PROCESS_ID"

# Mata el procés
kill $PROCESS_ID
echo "El procés amb PID $PROCESS_ID ha estat matat."

Comandes del Sistema

Les comandes del sistema permeten interactuar directament amb el sistema operatiu. Això inclou comandes per gestionar fitxers, directoris, usuaris, i més.

Exemples de Comandes del Sistema

# Mostra l'espai lliure en disc
df -h

# Mostra l'ús de memòria
free -m

# Mostra informació del sistema
uname -a

# Mostra l'historial de comandes
history

Exercici Pràctic

  1. Crea un script que mostri informació del sistema, incloent l'espai lliure en disc i l'ús de memòria.

Solució:

#!/bin/bash
# Mostra informació del sistema
echo "Informació del sistema:"
uname -a

# Mostra l'espai lliure en disc
echo "Espai lliure en disc:"
df -h

# Mostra l'ús de memòria
echo "Ús de memòria:"
free -m

Serveis del Sistema

Els serveis del sistema són programes que s'executen en segon pla i proporcionen funcionalitats específiques. Bash permet interactuar amb aquests serveis utilitzant comandes com systemctl i service.

Exemples d'Interacció amb Serveis

# Mostra l'estat d'un servei
systemctl status ssh

# Inicia un servei
sudo systemctl start ssh

# Para un servei
sudo systemctl stop ssh

# Reinicia un servei
sudo systemctl restart ssh

Exercici Pràctic

  1. Crea un script que mostri l'estat d'un servei específic i permeti a l'usuari iniciar, parar o reiniciar el servei.

Solució:

#!/bin/bash
# Mostra l'estat del servei ssh
echo "Estat del servei ssh:"
systemctl status ssh

# Pregunta a l'usuari què vol fer
echo "Què vols fer amb el servei ssh? (start/stop/restart)"
read ACTION

# Executa l'acció seleccionada
case $ACTION in
  start)
    sudo systemctl start ssh
    echo "El servei ssh ha estat iniciat."
    ;;
  stop)
    sudo systemctl stop ssh
    echo "El servei ssh ha estat parat."
    ;;
  restart)
    sudo systemctl restart ssh
    echo "El servei ssh ha estat reiniciat."
    ;;
  *)
    echo "Acció no vàlida."
    ;;
esac

Resum

En aquesta secció, hem après com interactuar amb el sistema operatiu utilitzant scripts de Bash. Hem cobert les variables d'entorn, la gestió de processos, les comandes del sistema i la interacció amb serveis del sistema. Aquests conceptes són fonamentals per a la creació de scripts eficients i efectius en Bash. En el proper tema, explorarem com treballar amb xarxes utilitzant Bash.

© Copyright 2024. Tots els drets reservats