Gadzira chirongwa chako nhanho nhanho uchishandisa Shell Chinyorwa - Chikamu 2

In the Chikamu 1 kubva pane dzino zvakateedzana tinorangarira nezve maitiro ekushandisa:

Uye mune apfuura, takazvinyorovesa maitiro ari nani kutevera paunenge uchigadzira yakanakisa Shell script muBash yeLinux, uye chaizvo chaizvo maererano nekugadzira a Shebang uye BSM (Bash Yakasimba Modi / Yakasimba Bhash Mode).

Maitiro akanakisa ekugadzira Shell script muGNU / Linux - Chikamu 1

Maitiro akanakisa ekugadzira Shell script muGNU / Linux - Chikamu 2

Shell Kuverenga

Mune ino posvo tichaona maitiro ekushandisa a Zvakatipoteredza Variables Module yeShell script muBhash yeLinux, achitora semuenzaniso imwe ye yangu zvirongwa (zvishandiso) chokwadi mu Shell chinyorwa akadanwa Linux Tumira Kuisa - Bicentennial Script 8.0, asi kutanga pfupiso diki yeiyo maitiro ari nani kuti uvarangarire.

  • Indente kodhi yako,
  • Wedzera nzvimbo dzinopatsanura pakati pezvikamu zvekodhi,
  • Taura zvaunogona pane kodhi,
  • Gadzira akasiyana nemazita anotsanangura emabasa avo,
  • Shandisa syntax VARIABLE = $ (command) yekumisikidza kuraira
  • Shandisa ma module uye / kana misiyano ye: Superuser uye Akabvumidzwa Mushandisi Validation pamwe kana pasina mapassword akasimbiswa
  • Shandisa ma module uye / kana akasiyana e: Kusimbiswa kweiyo Inoshanda Sisitimu (Distro, Shanduro, Dhizaini, pakati pevamwe.),
  • Shandisa ma module (maitiro / zvikamu) kusimbisa kuitiswa kwezviito zvakakomba kana batch zviito (zviitiko / mabasa),
  • Ipa Mushandisi-anoshamwaridzika Nzvimbo (Yeushamwari shamwari): NeTerminal (ine Menus uye Colors uchishandisa Dialog) uye / kana NeDesktop (ine Windows uchishandisa Zenity neGxmessage),
  • Sanganisira ma module ekugamuchirwa uye Farewell (mameseji) kumushandisi, kana zvichidikanwa,
  • Sanganisira mbiri yekumhanyisa ongororo module,
  • Regedza saizi saizi neKunze kweMabasa uye / kana maModule,
  • Kumbira nenzira yakajeka uye yakajeka kudana kune vamwe Vaturikiri,
  • Nyorera chero imwe inonzwisisika uye zvine hungwaru kurudziro iwe yaunofunga zvakakodzera.

Heino muenzaniso we Zvakatipoteredza Variables Module yeShell script muBhash yeLinux. Iyi inofanirwa kuve iri module (chikamu) iyo iine zvese izvo zvimwe kana zvimwe zvingangodaro izvo izvo Shell chinyorwa inoda kana ichazoda kuitiswa kwayo. Ini pachangu ndinowedzera zvinotevera:


###############################################################################
# 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
###############################################################################

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

Cherechedza: Zvichienderana nezvaunoda kana mashandiro iwe unogona kuwedzera rairo yekuraira tumira kunze my_variable pazasi peumwe neumwe weakasiyana apfuura akagadzira kana kugadzira uye kutumira kunze kwako akasiyana akasiyana akagadzirwa zvakananga nemirairo yekuraira kutengesa my_variable = my_parameter

Gare gare, mune ramangwana zvinyorwa isu ticharamba tichiona muenzaniso we ma module (zvikamu) dzinoita mabasa akadai se:

  • DOUBLE EXECUTION DETECTION MUENZANISO kana KUKUNDA KUTONGWA
  • KUSIMBISA MODULE
  • KUSHANDISA KWEMUSHANDI MODULE NEPASI
  • MUENZANISO WOKUDZIDZA KWENYAYA YEMAHARA YEMAHARA SYSTEM
  • KODZIDZO LANGUAGE KUSIMBISA Module
  • PROVY KUSIMBISA Module YENYAYA YEMAHARA

Pakati pevamwe vazhinji!

Ivo vanogona kuenda vega-vanodzidziswa nezve iwo mirairo: gksu, dialog, gxmessage, zenity, espeak, play, pakati pevamwe vazhinji kugadzira graphical interfaces neTerminal kana yeUser's Desktop, ine sonic kana multimedia yambiro, uye kufambira mberi ruzivo rwavanozoshandisa gare gare.

Rangarira kuti izvi uye chero mamwe mazano pane vamwe module, basa, musiyano, kuraira kana kuita kazhinji inogona kuitwa nzira dzakawanda, uye izvo zvinoratidzwa pano ndezvimwe chete nzira yakapusa, wepa nzira dzakawanda dzinogoneka uye dzinogona kuitika mune izvo zvataurwa chiito chinogona kana chinogona kuitwa!

Kungopedza ndinokusiya, a Screencast yakaitwa neni, kukuratidza izvo zvaungakwanise, mushure mekupedza izvi Shell Scripting online course in DesdeLinux:

LPI-SB8 Bvunzo ScreenCast

(LINUX POST INSTALL - BICENTENNIAL SCRIPT 8.0.0) - Chikamu 2


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   haana zita akadaro

    Zuva revanhu:
    echo -e «\ e [1; 32mDate:» $ (zuva «+% d-% m-% Y») «\ e [1; 32m Nguva:» $ (zuva «+% T»)

    Chokwadi "uname -s":
    kati / proc / sys / kernel / ostype

    Distro zita:
    kati / etc / * kuburitswa | cheka -f2 -d »| musoro -1

    Hostname:
    kati / proc / sys / kernel / hostname

    OS Architecture:
    [[-x / sbin / init]] && faira / sbin / init | awk '{anodhinda $ 7}' | tr -d ',' || [[-x / lib / systemd / systemd]] && faira / lib / systemd / systemd | awk '{anodhinda $ 7}' | tr -d ',' 2> / dev / null

    Kernel Shanduro:
    kati / proc / sys / kernel / osrelease

  2.   Jose Albert akadaro

    Ini ndainyanya kufarira mupiro wako wekutanga "zuva revanhu" sezvo zvabuda zvingave semuenzaniso:

    Zuva: 11-02-2016 Nguva: 16:04:10

    Izvo zvinobudirira mubhokisi, zenity kana gxmessage hwindo rinoratidzika kwazvo kugaya!

    Nemazano ako echipiri ndinoda kuzviisa seizvi:

    kana ichokwadi "uname -s" && cat / proc / sys / kernel / ostype; wobva wadzokorora "Inoshanda system yakasimbiswa"; fi | nyota 1d

    Uye pakupedzisira, ndinokutendai zvikuru nemipiro yenyu yekuvandudza senguva dzose!