Exemples pràctics i senzills de Scripting usant múltiples ordres

Shell Scripting: Exemples Practicos

Shell Scripting: Exemples Pràctics

En aquesta publicació es exploressin senzills exemples d'ordres de comandament que complementaran les anteriors publicacions sobre el tema que s'han abordat de manera específica i avançada amb els comandaments: grep, awk y set. Fent més ús d'altres ordres importants com ara: cat, cut, trobo, sort, que faciliten la lectura, extracció, filtrat i ordenament d'informació gestionada per altres comando de primer nivell.

Amb aquests senzills exemples s'espera que tots aquells que els estudiïn assoleixin un nivell de comprensió dels mateixos molt més alt que els permetin aplicar-los manualment en els terminals dels seus equips o de forma automatitzada dins dels script que creuen per a tasques automatitzades.

Exemple d'Ordres de comandament sobre la Gestió de Variables de Temps

Exemples per gestionar variables de temps

FECHA_ACTUAL=$(date +"%d-%b-%y")
# echo $FECHA_ACTUAL
# Fecha actual del Sistema

FECHA_ACTUAL_EXT=$(date "+%d-%m-%y_%H-%M-%S")
# echo $FECHA_ACTUAL_EXT
# Fecha actual extendida del Sistema

HORA_ACTUAL=$(date +"%H-%M")
# echo $HORA_ACTUAL
# Hora actual del Sistema

FECHA_SISTEMA_AN=$(date +"%d-%b-%y")
# echo $FECHA_SISTEMA_AN
# Almacenar la fecha  Alfanumérica actual del Equipo

FECHA_SISTEMA_N=$(date +"%d-%m-%y")
# echo $FECHA_SISTEMA_N
# Almacenar la fecha Numérica actual del Equipo

DIA_ACTUAL=$(date +"%d")
# echo $DIA_ACTUAL
# Almacenar el día actual del Equipo

MES_ACTUAL_A=$(date +"%b")
# echo $MES_ACTUAL_A
# Almacenar el mes alfabético actual del Equipo

MES_ACTUAL_N=$(date +"%m")
# echo $MES_ACTUAL_N
# Almacenar el mes numérico actual del Equipo

ANO_ACTUAL_2C=$(date +"%y")
# echo $ANO_ACTUAL_2C
# Almacenar el año (con 2 cifras) actual del Equipo

ANO_ACTUAL_4C=$(date +"%Y")
# echo $ANO_ACTUAL_4C
# Almacenar el año (con 4 cifras) actual del Equipo

HORA_SISTEMA=$(date +"%H-%M")
# echo $HORA_SISTEMA
# Almacenar la Hora actual del Equipo

HORA_ACTUAL=$(date +"%H")
# echo $HORA_ACTUAL
# Almacenar la Hora actual del Equipo

MINUTOS_ACTUAL=$(date +"%M")
# echo $MINUTOS_ACTUAL
# Almacenar la Hora actual del Equipo

Exemples de Gestió de Variables de Noms d'Usuaris

Exemples per gestionar noms d'usuaris

NOMBRE_USUARIO=$(cat /etc/passwd | grep 1000 | cut -d: -f1)
#  echo $NOMBRE_USUARIO
# Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSION SIMPLE

NOMBRE_USUARIO=$(awk -F: '{if ($3==1000) print $1}' /etc/passwd)
# echo $NOMBRE_USUARIO
# Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSION COMPLEJA

NOMBRE_USUARIO=$(awk -F: '{if ($4==1000) print $1}' /etc/passwd)
# echo $NOMBRE_USUARIO
# Nombre de Usuario creado por UID/GID (EJM. 1000) - VERSION COMPLEJA

IDSUPERUSER=$(id -u | awk '{print $1}')
# echo $IDSUPERUSER
IDSUPERUSER=$(echo $UID) 
# echo $IDSUPERUSER
IDSUPERUSER=$(getent passwd $USER | cut -d: -f3) 
# echo $IDSUPERUSER
# Almacenar IUD del Superusuario root

USER_NAME_1=$(cat /etc/passwd | grep 1000 | cut -d: -f1 | awk '{print $1}') ; echo $USER_NAME_1
HOME_USER_NAME_1=/home/$USER_NAME_1 ; echo $HOME_USER_NAME_1
# Almacenar el nombre del usuario 1000 y su /home. Probable único y primer Usuario del Sistema.

USER_NAME_2=$(cat /etc/passwd | grep 1001 | cut -d: -f1 | sed -n '2p' | awk '{print $1}')
HOME_USER_NAME_2=/home/$USER_NAME_2 ; echo $USER_NAME_2
# Almacenar el nombre del usuario 1001 y su /home. Probable segundo Usuario del Sistema.

ID_USERNAME_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed 1q) ; echo $ID_USERNAME_SESSION
# Almacenar el ID del Nombre del primer usuario (alfabéticamente) detectado conectado (con sesión abierta) en el sistema.

USERNAME_ID_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $2}' ; done ; echo $i) ; echo $USERNAME_ID_SESSION
# Almacenar el Nombre del primer usuario (alfabéticamente) detectado conectado (con sesión abierta) en el sistema.

Exemples de Gestió de Variables de Dades sobre la Distro usada

Exemples per gestionar dades de la Distribució

VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')
# echo $VERSION_SISTEMA
# Versión del Sistema Operativo

SUBVERSION_SISTEMA=$(lsb_release -d | awk '{print $4}')
# echo $SUBVERSION_SISTEMA 
# Subversión del Sistema Operativo

TIPO_S_O_L=$(uname -o)
# echo $TIPO_S_O_L
# Almacena el nombre largo del tipo de Sistema Operativo encontrado.

TIPO_S_O_C=$(uname -s)
# echo $TIPO_S_O_C
# Almacena el nombre corto del tipo de Sistema Operativo encontrado.

NOM_DISTRO_C=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\" | awk '{print $1}')
NOM_DISTRO_C=$(lsb_release -d | sed 's/Description://' | awk '{print $1}')
NOM_DISTRO_C=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
# echo $NOM_DISTRO_C
# Almacena el nombre corto de la Distro detectada.

ID_DISTRO=$(cat /etc/os-release | grep ID | grep -v "VERSION_ID" | grep -v "ID_LIKE" | sed 's/ID=//' | sed 's/"//g')
ID_DISTRO=$(lsb_release -i | awk '{print $3}')
# echo $ID_DISTRO
# Almacena el ID de la Distro detectada.

VER_DISTRO=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')
VER_DISTRO=$(lsb_release -c | sed 's/Codename://')
# echo $VER_DISTRO
# Almacena el nombre de la versión de la Distro detectada.

ID_VER_DISTRO=$(cat /etc/os-release | grep VERSION_ID= | sed -n '1p' | sed 's/VERSION_ID=//' | sed 's/"//g')
# ID_VER_DISTRO=$(lsb_release -r | sed 's/Release://')
# echo $ID_VER_DISTRO
# Almacena el ID de la versión de la Distro detectada.

ARQ_DISTRO_COD=$(uname -m)
# echo $ARQ_DISTRO_COD
# Almacenar el Tipo de Arquitectura de la Distro detectada en forma codificada.

ARQ_DISTRO_COD=$(uname -m) ; if [[ "$ARQ_DISTRO_COD" = "x86" ]]; then ARQ_DISTRO_HUM=32; else ARQ_DISTRO_HUM=64; fi
# echo $ARQ_DISTRO_HUM
# Convertir el Tipo de Arquitectura de la Distro detectada en forma codificada a forma humana.

VER_KERNEL=$(uname -r)
# echo $VER_KERNEL
# Almacenar el Nombre del Arquitectura de la Distro detectada.

VERSION_BASH=$(bash --version | grep bash | awk '{print $4}') 
# echo $VERSION_BASH
# Almacenar la Versión del Bash Shell.

Si vols aprendre una mica més sobre «Shell Scripting» consulta aquest enllaç «El Manual d'BASH Scripting Bàsic d'introducció a« y si desitges aprendre més sobre Shell Scripting en el nostre propi Blog, Pots donar-li un cop d'ull a les nostres altres publicacions sobre el tema, fent clic aquí: Scripting a DesdeLinux.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Francisco Maria va dir

    Molt bo! Molt útil! Segona part?

  2.   Linux Post Install va dir

    Moltes gràcies pel teu comentari! Tracta de fer la segona part ...

  3.   fragel va dir

    que esxelente bloc no havia escrudiñado molt en el però em satisfà molt el que es Públca

  4.   Linux Post Install va dir

    Gràcies Fraciel pel teu positiu comentari sobre el Bloc i les publicacions!