U dhis barnaamijkaaga tallaabo tallaabo adoo adeegsanaya Qoraalka Shell - Qaybta 2

In Qeybta 1aad taxanahan waxaan ka xasuusaneynaa sida loo hirgaliyo a:

Kuwii horena waanu isku qoynay dhaqanka wanaagsan in la raaco marka la abuurayo heer sare Qoraalka Shell ee Bash ee Linux, iyo si gaar ah gaar ahaan xagga qaabeynta a Shebang iyo BSM (Bash Mode Adag / Xaalad adag oo Bash ah).

Dhaqannada ugu wanaagsan ee lagu abuuro Qoraalka Shell ee GNU / Linux - Qaybta 1

Dhaqannada ugu wanaagsan ee lagu abuuro Qoraalka Shell ee GNU / Linux - Qaybta 2

 

Shell ScriptingQoraalkan waxaan ku arki doonaa sida loo hirgeliyo a Module Isbeddelka Deegaanka ee Qoraalka Shell ee ku yaal Bash ee Linux, oo tusaale u soo qaadanaya mid ka mid ah kuwayga barnaamijyada (codsiyada) xaqiiqooyinka ku jira a Qoraalka Shell loo yaqaan Linux Post Ku Rakib - Qormo Laba Biloodle ah 8.0, laakiin marka hore kooban kooban oo ah dhaqanka wanaagsan si aad iyaga maskaxda ugu hayso:

  • Geli lambarkaaga,
  • Ku dar meelaha kala-goynta u dhexeeya qaybaha koodhka,
  • Ka faallood inta aad kari karto lambarka,
  • Abuur doorsoomayaal leh magacyo sharraxaya shaqooyinkooda,
  • U adeegso qoraalka VARIABLE = $ (amarka) beddelka amarka
  • Adeegso modules iyo / ama doorsoomayaasha: Superuser iyo Xaqiijinta Isticmaalaha La Oggol yahay ama aan lahayn lambar sir ah.
  • Isticmaal modules iyo / ama doorsoomayaasha: Xaqiijinta Nidaamka Howlgalka (Distro, Version, Architecture, iyo kuwo kale.),
  • Isticmaal modules (habraacyada / qaybaha) si loo xaqiijiyo fulinta ficillada muhiimka ah ama waxqabadka (waxqabadyada / howlaha),
  • Bixi Isdhaafsiyo Saaxiibtinimo oo Saaxiibtinimo ah (Saaxiibtinimo): By Terminal (oo leh menus iyo midabyo isticmaalaya Dialog) iyo / ama By Desktop (oo leh Windows iyadoo la adeegsanayo Zenity iyo Gxmessage),
  • Ku dar mowduucyada Soo-dhaweynta iyo Sagootinta (farriimaha) adeegsadaha, haddii loo baahdo,
  • Ku dar qayb ka mid ah moduleka xaqiijinta fulinta,
  • Qiimee cabirka qoraalka oo leh Hawlaha Dibadda iyo / ama Module,
  • U yeer si cad oo muuqata oo loogu yeero wicitaanada Turjubaanka kale,
  • Codso talo kasta oo macquul ah oo macquul ah oo aad u aragto inay lagama maarmaan tahay.

Halkan waxaa ku yaal tusaale a Module Isbeddelka Deegaanka ee Qoraalka Shell ee ku yaal Bash ee Linux. Tani waa inay noqotaa qaybta (qaybta) ay ku jiraan dhammaan kuwa doorsoomayaasha qaarkood ama kuwa suurtagalka ah ee Qoraalka Shell u baahan yahay ama u baahan doono fulintiisa. Aniga shaqsiyan waxaan kudaraa waxyaabaha soo socda:


###############################################################################
# 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: Iyada oo ku xidhan shuruudahaaga ama hirgelinta waxaad ku dari kartaa amarka amarka dhoofinta my_variable hoosta ka hooseysa mid kasta oo ka mid ah doorsoomayaasha hore ee la abuuray ama la abuuro lana dhoofiyo is-beddelkaaga gaarka ah ee toos loogu abuuray amarka amarka dhoofinta my_variable = my_parameters

Mar dambe, qoraalada mustaqbalka waxaan sii wadeynaa inaan aragno tusaale modules (qaybo) fuliya howlaha sida:

  • HABKA DIIWAANKA FULINTA DIIWAANKA AMA FURASHADA FASHILAN
  • MUDDADA OPTIMIZATION
  • MUUQAALKA OGOLAANSHAHA ISTICMAALKA PASSWORD
  • HABKA HELISTA NIDAAMKA HAWLGALKA HAWLGALKA
  • Moodalka qaabeynta qaabeynta luqadda
  • MUUQAALKA ISKU DHISKA PROXY EE DEEGAANKA FULINTA

Kuwa kale oo badan!

Waxay iskood u baran karaan amarrada: gksu, wada hadal, gxmessage, zenity, espeak, ciyaar, iyo kuwo kale oo badan si loo abuuro isdhexgalka garaafka ee Terminal ama loogu talagalay Adeegga Miisaanka, oo leh digniino sonic ama multimedia, iyo hormarinta aqoonta ay hadhow adeegsan doonaan.

Xusuusnow in kuwani iyo wixii kale ee talo ah ee qaarkood module, function, variable, amarka ama ficilka guud ahaan waa la fulin karaa siyaabo badan, oo waxa halkan lagu muujiyey waa mid keliya hab fudud, ee siyaabo badan oo suurtagal ah oo macquul ah taas oo uu yidhi tallaabo waa la qaadi karaa ama waa la fulin karaa!

Kaliya inaan dhammeeyo waan kaa tegayaa, a Shaashadda aniga ayaa sameeyay, inaan ku tuso waxaad awood u yeelan lahayd, markaad tan dhammaysato ka dib Koorsada Shell Scripting ee ku taal DesdeLinux:

LPI-SB8 Imtixaanka ScreenCast

(LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0) - Qaybta 2

 


Nuxurka maqaalka wuxuu u hogaansamayaa mabaadi'deena anshaxa tifaftirka. Si aad u soo sheegto khalad guji Halkan.

2 faallooyin, ka tag taada

Ka tag faalladaada

cinwaanka email aan la daabacin doonaa.

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   magac la'aan dijo

    Taariikhda aadanaha:
    echo -e «\ e [1; 32mTaariikhda:» $ (taariikhda «+% d-% m-% Y») «\ e [1; 32m Waqtiga:» $ (taariikhda «+% T»)

    Run "uname -s":
    bisad / proc / sys / kernel / ostype

    Magaca Distro:
    bisad / iwm / * sii deyn | jar -f2 -d »| madaxa -1

    Magaca martida:
    bisad / proc / sys / kernel / hostname

    Qaab dhismeedka OS:
    [[-x / sbin / init]] && faylka / sbin / init | awk '{daabac $ 7}' | tr -d ',' || [[-x / lib / systemd / systemd]] && faylka / lib / systemd / systemd | awk '{daabac $ 7}' | tr -d ',' 2> / dev / null

    Nooca Kernel:
    bisad / proc / sys / kernel / osrelease

  2.   Jose Albert dijo

    Runtii waan ka helay waxtarkaagii ugu horreeyay "taariikhda dadka" tan iyo markii wax soo saarku tusaale u noqon lahaa:

    Taariikh: 11-02-2016 Waqtiga: 16:04:10

    Taas oo si wax ku ool ah ugu jirta wadahadal, qaan-gaar ah ama daaqad gxmessage ah oo muuqaal ahaan la dheefsan karo!

    Taladaada labaad waxaan jeclaan lahaa inaan dhigo sidan:

    hadday run tahay "uname -s" && cat / proc / sys / kernel / ostype; ka dib ku celcelinta "Nidaamka qalliinka la ansaxiyay"; fi | harraad 1d

    Ugu dambeyntiina, aad baad ugu mahadsan tihiin tabarucaadka aad kobcineysaan had iyo jeer!