Yakha inkqubo yakho inyathelo ngenyathelo usebenzisa iShell Scripting-Icandelo le-2

Kulo icandelo loku-1 kolu ngcelele sikhumbula malunga nendlela yokuphumeza:

Kwaye ngaphambili, sasizifakile iindlela ezingcono ukulandela xa usenza okugqwesileyo Iskripthi seShell eBhash kwiLinux, kwaye ngokukodwa ngokubhekisele kuyilo I-Shebang kunye ne-BSM (Imo yeBhash engqongqo / indlela yeBhash engqongqo).

Eyona ndlela ilungileyo yokwenza iShell yeSkripthi kwi-GNU / Linux-Icandelo 1

Eyona ndlela ilungileyo yokwenza iShell yeSkripthi kwi-GNU / Linux-Icandelo 2

 

Ukushicilela kweShellKule posi siza kubona indlela yokuphumeza Imodyuli eyahlukileyo yemo engqongileyo yeSkripthi seShell eBhash yeLinux, ithatha njengomzekelo omnye weefayile ze- iinkqubo (izicelo) iinyani kwi Iskripthi seShell kubizwa Ukufakwa kweLinux Post-iBicentennial Script 8.0, kodwa kuqala isishwankathelo esincinci se iindlela ezingcono ukuze uzigcine engqondweni.

  • Ngenisa ikhowudi yakho,
  • Yongeza ukwahlula izithuba phakathi kwamacandelo ekhowudi,
  • Nika amagqabantshintshi kangangoko unakho kwikhowudi,
  • Yenza izinto eziguquguqukayo ngamagama achazayo emisebenzi yazo,
  • Sebenzisa i-syntax VARIABLE = $ (command) endaweni yomyalelo
  • Sebenzisa iimodyuli kunye / okanye izinto eziguquguqukayo ze: Superuser kunye nokuQinisekiswa koMsebenzisi oGunyazisiweyo kunye okanye ngaphandle kwamaphasiwedi amiselweyo.
  • Sebenzisa iimodyuli kunye / okanye izinto eziguquguqukayo: Ukuqinisekiswa kwenkqubo yokusebenza (iDistro, inguqulelo, uyilo lwezakhiwo, phakathi kwabanye.),
  • Sebenzisa iimodyuli (iinkqubo / amacandelo) ukuqinisekisa ukwenziwa kweentshukumo ezibalulekileyo okanye zebatch (imisebenzi / imisebenzi),
  • Nika indawo yokusebenziseka lula yomsebenzisi
  • Faka imodyuli zokwamkela kunye nokuvalelisa (imiyalezo) kumsebenzisi, ukuba kukho imfuneko,
  • Faka imodyuli yokuqinisekisa ukwenziwa kabini,
  • Hlaziya ubungakanani beskripthi ngemisebenzi yangaphandle kunye / okanye neeModyuli,
  • Bhengeza ngendlela ecacileyo necacileyo yeefowuni kwezinye iitoliki,
  • Faka isicelo kulo naluphi na olunye uluvo olucingayo nolusengqiqweni ocinga ukuba luyimfuneko.

Nanku umzekelo we Imodyuli eyahlukileyo yemo engqongileyo yeSkripthi seShell eBhash yeLinux. Oku kufanele ukuba kube yimodyuli (yecandelo) equlathe zonke ezo zinto zixabisekileyo okanye zinokwenzeka ukuba ezi Iskripthi seShell iimfuno okanye ziya kufuna ukuphunyezwa kwayo. Mna ngokobuqu ndongeza oku kulandelayo:


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

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

Qaphela: Kuxhomekeka kwiimfuno zakho okanye kuzalisekiso ungongeza umyalelo womyalelo ukuthumela ngaphandle my_variable ngezantsi kwezinto eziguquguqukayo zangaphambili ezidaliweyo okanye ezenziwayo kunye nokuthumela ngaphandle izinto zakho eziguquguqukayo ezenziwe ngqo ngomyalelo womyalelo ukuthumela ngaphandle my_variable = my_parameters

Emva kwexesha, kwizithuba ezizayo siya kuqhubeka ukubona umzekelo iimodyuli (amacandelo) abenza imisebenzi enje:

  • INKQUBO YOKUGCINWA KOKUGQIBELA OKANYE IMPUMELELO EPHELELEYO
  • IMODE YOKWENZA UKUKHULA
  • IMODYULI YOKUGUNYAZWA KWABASEBENZISI NGEPHASwedi
  • IMODYULI YOKUFUMANEKA KWEZAKHIWO ZENKQUBO YOKUSEBENZA
  • UKUMISELWA KWENKQUBO YOLWIMI LOLWIMI
  • INKQUBO YOKUQULUNQWA KWEPROX YOKUSINGQONGILEYO

Phakathi kwabanye abaninzi!

Banokuzifundisa ngokwabo malunga nemiyalelo: gksu, ingxoxo, gxmessage, zenity, espeak, dlala, phakathi kwezinye ezininzi ukwenza ujongano lomzobo ngeTheminali okanye kwiDesktop yoMsebenzisi, ngezilumkiso zonyana okanye zemultimedia, kunye nolwazi lwangaphambili abaza kulusebenzisa kamva.

Khumbula ukuba ezi kunye nezinye iingcebiso kwezinye imodyuli, umsebenzi, umahluko, umyalelo okanye isenzo ngokubanzi kunokwenziwa iindlela ezininzi, kwaye yintoni eboniswe apha ayikho enye into ngaphandle kwe indlela elula, ye iindlela ezininzi ezinokwenzeka nezibonakalayo apho wathi isenzo sinakho okanye sinokwenziwa!

Ukugqiba nje kukushiya, a Iscreencast esenziwe ndim, ukukubonisa into onokwazi ukuyenza, emva kokugqiba oku Ishell Ukubhala ikhosi ekhompyutheni kwiDesdeLinux:

Uvavanyo lweLPI-SB8 ScreenCast

(I-LINUX POST INSTALL-IBICENTENNIAL SCRIPT 8.0.0) -Icandelo 2

 


Umxholo wenqaku uyabambelela kwimigaqo yethu imigaqo yokuziphatha yokuhlela. Ukuxela impazamo cofa apha.

Izimvo ezi-2, shiya ezakho

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   akunagama sitsho

    Umhla wabantu:
    echo -e «\ e [1; 32mUmhla:» $ (umhla «+% d-% m-% Y») «\ e [1; 32m Ixesha:» $ (umhla «+% T»)

    Yinyani "uname -s":
    ikati / proc / sys / kernel / ostype

    Distro igama:
    ikati / njl / * ukukhutshwa | cut -f2 -d »| intloko -1

    Igama lomamkeli:
    ikati / pro / sys / kernel / igama lenginginya

    Uyilo lweOS:
    [[-x / sbin / init]] && ifayile / sbin / init | awk '{shicilela $ 7}' | tr -d ',' || [[-x / lib / systemd / systemd]] && ifayile / lib / systemd / systemd | awk '{shicilela $ 7}' | tr -d ',' 2> / dev / null

    Inguqulelo yeKernel:
    ikati / proc / sys / kernel / osrelease

  2.   Ing. UJoseph Albert sitsho

    Ndilithandile igalelo lakho lokuqala "umhla wabantu" okoko iziphumo ziya kuba ngumzekelo:

    Umhla: 11-02-2016 Ixesha: 16:04:10

    Yeyiphi eyiyo kwincoko yababini, zenity okanye ye-gxmessage window ebonakalayo ebonakalayo!

    Ngengcebiso yakho yesibini ndingathanda ukuyibeka ngolu hlobo:

    ukuba yinyani "uname -s" && cat / proc / sys / kernel / ostype; ke echo "Inkqubo yokusebenza iqinisekisiwe"; fi | unxano 1d

    Kwaye okokugqibela, enkosi kakhulu ngegalelo lakho lokutyebisa njengesiqhelo!