Yakha uhlelo lwakho ngesinyathelo ngesinyathelo usebenzisa i-Shell Scripting - Ingxenye 2

Ku ingxenye 1 yalolu chungechunge sikhumbula indlela yokusebenzisa:

Nakwezinye ezedlule, simanzise thina imikhuba engcono ukulandela lapho udala okuhle kakhulu Umbhalo weShell eBash weLinux, futhi ikakhulukazi ngokuklama i I-Shebang ne-BSM (Imodi Eqinile YeBash / Imodi Eqinile YeBash).

Imikhuba emihle yokwenza iShell Script ku-GNU / Linux - Ingxenye 1

Imikhuba emihle yokwenza iShell Script ku-GNU / Linux - Ingxenye 2

Isikripthi se-Shell

Kulokhu okuthunyelwe sizobona ukuthi singaqalisa kanjani i- Imodyuli Eguquguqukayo Yemvelo Yesikripthi SeShell eBash yeLinux, ukuthatha njengesibonelo esisodwa se- my izinhlelo (izicelo) amaqiniso ku- Isikripthi seShell kubizwa Ukufaka kwe-Linux Post - I-Bicentennial Script 8.0, kodwa okokuqala isifinyezo esincane se- imikhuba engcono ukuze ubakhumbule.

  • Faka ikhodi yakho,
  • Faka izikhala zokuhlukanisa phakathi kwezingxenye zekhodi,
  • Beka amazwana ngangokunokwenzeka kwikhodi,
  • Dala okuguquguqukayo ngamagama achazayo wemisebenzi yabo,
  • Sebenzisa i-syntax VARIABLE = $ (command) ukufaka umyalo esikhundleni
  • Sebenzisa amamojula kanye / noma okuguquguqukayo kwe: I-Superuser ne-Authorized User Validation enamaphasiwedi aqinisekisiwe noma ngaphandle kwawo.
  • Sebenzisa amamojula kanye / noma okuguquguqukayo koku: Ukuqinisekiswa koHlelo Lokusebenza (i-Distro, Version, Architecture, phakathi kwabanye.),
  • Sebenzisa amamojula (izinqubo / izingxenye) ukuqinisekisa ukwenziwa kwezenzo ezibucayi noma ze-batch (imisebenzi / imisebenzi),
  • Nikeza Izindlela Zokusebenzelana Zomsebenzisi (Zisebenziseka Kabi): NgeTheminali (enamamenyu Nemibala kusetshenziswa Ingxoxo) kanye / noma ngeDeskithophu (eneWindows esebenzisa iZenity neGxmessage),
  • Faka amamojula Wokwamukela nokuvalelisa (imiyalezo) kumsebenzisi, uma kunesidingo,
  • Faka imodyuli yokuqinisekisa ukwenziwa kabili,
  • Hlaziya usayizi weskripthi ngemisebenzi yangaphandle kanye / noma amaModyuli,
  • Celani ngendlela ecacile futhi esobala izingcingo eziya kwabanye abahumushi,
  • Faka noma isiphi esinye isincomo esinengqondo nesinengqondo osibona sidingeka.

Nasi isibonelo se- Imodyuli Eguquguqukayo Yemvelo Yesikripthi SeShell eBash yeLinux. Lokhu kufanele kube yi-module (isigaba) equkethe konke lokho okuguqukayo okuthile noma okungenzeka ukuthi Isikripthi seShell idinga noma izodinga ukwenziwa kwayo. Ngokwami ​​ngifaka okulandelayo:


###############################################################################
# INICIO DEL MODULO DE VARIABLES DE ENTORNO DEL SCRIPT
###############################################################################

NOM_SCRIPT=lpi_sb8_inicio_2016.sh
# echo $NOM_SCRIPT
# Almacenar como una variable predeterminada el Nombre real del Script

USR1_VALID=sysadmin
# echo $USR1_VALID
# Almacenar como una variable predeterminada el Nombre de Usuario valido que podrá ejecutar el Script.
# Haga una variable por cada Usuario Autorizado.

PASSWD_VALID=lpi*sb8
# echo $PASSWD_VALID
# Almacenar como una variable predeterminada el Nombre de la contraseña valida que permitirá ejecutar el Script.
# Haga una variable por cada contraseña de cada Usuario Autorizado.

S_O_VALID=kali
# echo $S_O_VALID
# Almacenar como una variable predeterminada el tipo de Sistema operativo valido para donde debe ser ejecutado el Script.

HOST_VALID=hostmovil-sysadmin
# echo $HOST_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

IP_VALID=192.168.1.107
# echo $IP_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

MAC_VALID=44:8a:5b:f0:3d:f3
# echo $MAC_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

FILE_LOCK=lpi_sb_file_lock.txt
# echo $FILE_LOCK
# Almacenar el nombre de archivo predeterminada por el sistema para evitar doble ejecuciones ó detectar ejecuciones fallidas.

IDSUPERUSER=$(id -u | awk '{print $1}')
# IDSUPERUSER=$(echo $UID)
# 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}')
HOME_USER_NAME_1=/home/$USER_NAME_1
# echo $USER_NAME_1 $HOME_USER_NAME_1
# Almacenar el nombre del usuario 1000 y su /home. Probable unico 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 $HOME_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 (alfabeticamente) 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 (alfabeticamente) detectado conectado (con sesión abierta) en el sistema.

# ID_FIRST_USERNAME=$(for i in 1000 1001 1002 1003 1004; 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 -n '1p')
# echo $ID_FIRST_USERNAME
# Almacenar el ID del Nombre del primer usuario creado en el sistema entre los ID del 1000 al 1005.
# Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)

# ID_FIRST_USERNAME=$(for i in $(seq 1000 1999); 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 -n '1p')
# echo $ID_FIRST_USERNAME
# Almacenar el ID del Nombre del primer usuario creado en el sistema.
# Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)

UBICACION=$(echo $PWD)
# UBICACION=$(pwd)
# echo $UBICACION
# Almacenar ruta de ejecución del Script LPI-SB

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

FECHA_SISTEMA_N=$(date +"%d %m %y")
# echo $FECHA_SISTEMA_N
# Almacenar la fecha Numerica 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 alfabetico actual del Equipo

MES_ACTUAL_N=$(date +"%m")
# echo $MES_ACTUAL_N
# Almacenarel mes numerico 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

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_L=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
# NOM_DISTRO_L=$(lsb_release -d | sed 's/Description://')
# echo $NOM_DISTRO_L
# Almacena el nombre largo de la Distro detectada.

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}')
# 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.

NOM_HOST=$(cat /etc/hostname)
# echo $NOM_HOST
# Almacenar el Nombre del Host donde se ejecuta el Script.

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')
# IP_INTERNA=$(hostname -I)
# echo $IP_ETH0 $MAC_ETH0
# Almacenar la IP / MAC del Host donde se ejecuta el Script.

echo "Variables de entorno cargadas sin errores, en 5 segundos la aplicación continuará ejecutandose"
sleep 5

###############################################################################
# FINAL DEL MODULO DE VARIABLES DE ENTORNO DEL SCRIPT
###############################################################################

===============

Nota: Ngokuya ngezidingo zakho noma ukusebenzisa kwakho ungangeza umyalo womyalo thekelisa i-my_variable ngezansi kokuhluka ngakunye kwangaphambilini kudaliwe noma kwakhiwe futhi kwathunyelwa okuguquguqukayo kwakho okwenziwe ngqo ngomyalo womyalo thekelisa i-my_variable = my_parameters

Kamuva, kokuthunyelwe okuzayo sizoqhubeka nokubona isibonelo se- amamojula (izigaba) abenza imisebenzi efana nale:

  • IMODULE YOKUTHOLA ISIPHUMELELO ESIBILI noma ISIPHELELO ESIHLULEKILE
  • I-MODULE YOKWENZA UKWENZA
  • IMODULE YOKUGUNYAZWA KWABASEBENZISI NEPHASwedi
  • INOMODI YOKUTHOLAKALA KWESAKHIWO SOKUSEBENZA
  • INDLELA YOKULUNGISELELA ULIMI LWOLIMI
  • INDLELA YOKULUNGISELELA AMAMANDLA YOKUVALELWA KOKUPHELELWA KOKUPHELELA

Phakathi kwabanye abaningi!

Bangakwazi ukuzifundisa ngokwabo ngemiyalo: gksu, dialog, gxmessage, zenity, espeak, play, phakathi kokunye okuningi ukudala i-interface yokuqhafaza ngeTheminali noma ngeDeskithophu Yomsebenzisi, ngezixwayiso ze-sonic noma zemultimedia, futhi bathuthukise ulwazi abazolusebenzisa kamuva.

Khumbula ukuthi lezi nezinye izincomo kwezinye imodyuli, umsebenzi, ukuguquguquka, umyalo noma isenzo ngokuvamile kungenziwa izindlela eziningi, futhi okuboniswa lapha akuyona into ngaphandle kwe-a indlela elula, we izindlela eziningi ezingenzeka futhi ezingenzeka lapho wathi isenzo singenziwa noma singenziwa!

Ukuqeda nje ngikushiya, a Screencast eyenziwe yimina, ukukukhombisa ukuthi yini ongakwazi ukuyenza, ngemuva kokuqeda lokhu Shell Scripting online course in DesdeLinux:

I-LPI-SB8 Test ScreenCast

(I-LINUX POST INSTALL - ISICWANGCISO SEBICENTENNIAL 8.0.0) - Ingxenye 2


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   ongenagama kusho

    Idethi yabantu:
    echo -e «\ e [1; 32mUsuku:» $ (idethi «+% d-% m-% Y») «\ e [1; 32m Isikhathi:» $ (usuku «+% T»)

    Iqiniso "uname -s":
    ikati / i-proc / sys / i-kernel / i-ostype

    Igama le-Distro:
    ikati / njll / * ukukhululwa | cut -f2 -d »| ikhanda -1

    Igama lomethuleli:
    ikati / i-proc / sys / i-kernel / igama lomethuleli

    Ukwakhiwa kwe-OS:
    [[-x / sbin / init]] && ifayela / sbin / init | awk '{phrinta $ 7}' | tr -d ',' || [[-x / lib / systemd / systemd]] && file / lib / systemd / systemd | awk '{phrinta $ 7}' | tr -d ',' 2> / dev / null

    Inguqulo ye-Kernel:
    ikati / proc / sys / kernel / osrelease

  2.   Ing. UJoseph Albert kusho

    Ngilithandile impela usuku lwakho lomnikelo lokuqala "usuku lwabantu" ngoba umphumela uzoba njengesibonelo:

    Idethi: 11-02-2016 Isikhathi: 16:04:10

    Okuyimpumelelo engxoxweni, kwi-zenity noma ewindini le-gxmessage kubonakala kugayeke kakhulu!

    Ngesiphakamiso sakho sesibili ngithanda ukukubeka kanjena:

    uma kuyiqiniso "uname -s" && cat / proc / sys / kernel / ostype; bese u-echo "Uhlelo lokusebenza luqinisekisiwe"; fi | ukoma 1d

    Futhi ekugcineni, ngiyabonga kakhulu ngeminikelo yakho yokucebisa njengenjwayelo!