Gina shirinku mataki zuwa mataki ta amfani da rubutun Shell - Sashe na 2

A cikin bangare 1 wannan jerin muna tuna yadda ake aiwatar da:

Kuma a cikin wadanda suka gabata, mun jika kanmu ayyuka mafi kyau a bi yayin ƙirƙirar kyakkyawa Rubutun Shell a cikin Bash don Linux, kuma musamman musamman dangane da tsara a Shebang da BSM (Yanayin Tsayayyar Bash / Tsattsauran Yanayin Bash).

Ayyuka mafi kyau don ƙirƙirar Rubutun Shell a cikin GNU / Linux - Sashe na 1

Ayyuka mafi kyau don ƙirƙirar Rubutun Shell a cikin GNU / Linux - Sashe na 2

Scriptan Shell

A cikin wannan sakon zamu ga yadda ake aiwatar da a Yanayin Yanayin Yanayi na Rubutun Shell a Bash don Linux, daukar misali daya daga na shirye-shirye (aikace-aikace) gaskiya a Rubutun Shell da ake kira Linux Post Shigar - Rubutun shekara biyu 8.0, amma da farko karamin bayani game da ayyuka mafi kyau sab thatda haka, ka tuna da su:

  • Sanya lambar ka,
  • Spacesara wurare masu rarraba tsakanin sassan lambar,
  • Yi bayani gwargwadon yadda za ku iya kan lambar,
  • Createirƙiri masu canji tare da siffofin sunayen ayyukansu,
  • Yi amfani da rubutun kalmomi VARIABLE = $ (umarni) don sauya umarnin
  • Yi amfani da kayayyaki da / ko masu canji na: Superuser da Ingantaccen Amintaccen mai amfani tare da ko ba tare da kafa kalmomin shiga ba.
  • Yi amfani da kayayyaki da / ko masu canji na: Tabbatar da Tsarin Tsarin Gudanarwa (Distro, Version, Architecture, da sauransu.),
  • Yi amfani da kayayyaki (hanyoyin / ɓangarori) don tabbatar da aiwatar da mahimman ayyuka ko matakan aiki (ayyuka / ayyuka),
  • Bayar da Hanyoyin Abubuwan Amfani (Mai Amfani): Ta Terminal (tare da Manu da Launuka ta amfani da Tattaunawa) da / ko Ta tebur (tare da Windows ta amfani da Zenity da Gxmessage),
  • Hada kayayyaki na Maraba da ban kwana (sakonni) ga mai amfani, idan ya cancanta,
  • Hada da tsarin tabbatarwa guda biyu,
  • Bayyana girman rubutun tare da Ayyuka na waje da / ko Module,
  • Kira kira a bayyane kuma bayyanannen kira ga sauran Masu Fassara,
  • Aiwatar da kowane shawarwari masu ma'ana da hankali waɗanda kuke ganin ya cancanta.

Ga misalin wani Yanayin Yanayin Yanayi na Rubutun Shell a Bash don Linux. Wannan yakamata ya kasance koyaushe (ɓangaren) wanda ya ƙunshi duk waɗancan tabbatattun ko masu yiwuwa masu canji waɗanda Rubutun Shell yana buƙatar ko zai buƙaci aiwatar da shi. Ni kaina na ƙara waɗannan masu zuwa:


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

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

Note: Dogaro da buƙatunku ko aiwatarwa zaku iya ƙara umarnin umarnin fitarwa ta_variable a ƙasa kowane ɗayan canje-canje na baya da aka ƙirƙira ko ƙirƙira da fitarwa abubuwan canjin ku waɗanda aka ƙirƙira kai tsaye tare da umarnin umarni export my_variable = my_parameters

Daga baya, a rubutun gaba zamu ci gaba da ganin misalin kayayyaki (sassan) waɗanda ke yin ayyuka kamar:

  • MAGANIN KASHE KASHE GUDA BIYU KO KASHE GAGARI
  • KYAUTATA MULKI
  • MULKIN HALITTA MAI AMFANI DA MAGANA
  • YADDA AKE GANE GASKIYAR LITTAFIN AIKI
  • MULKIN SIFFAN HARSUN HARSHE
  • PROXY CONFIGURATION ModULE DOMIN HUKUNCIN KISA

Daga cikin wasu da yawa!

Zasu iya koyar da kansu game da umarnin: gksu, maganganu, gxmessage, zenity, espeak, wasa, a tsakanin wasu da yawa don ƙirƙirar maɓallan zane ta Terminal ko don Tebur ɗin Mai amfani, tare da faɗakarwa ta sonic ko multimedia, da kuma ci gaban ilimin da zasuyi amfani dashi daga baya.

Ka tuna cewa waɗannan da duk wasu shawarwari akan wasu module, aiki, m, umarni ko aiki a gaba ɗaya ana iya aiwatar da shi hanyoyi da yawa, kuma abin da aka nuna anan ba komai bane face a hanya mai sauƙi, na da yawa hanyoyi masu yuwuwa a cikin abin da ya ce mataki na iya ko za a iya aiwatarwa!

Kawai don gamawa na bar ku, a Labarin allo da ni, don nuna muku abin da za ku iya, bayan kammala wannan Shell Scripting akan layi hanya a cikin DesdeLinux:

LPI-SB8 Gwajin ScreenCast

(LINUX POST INSTALL - LITTAFIN BICENTENARIO 8.0.0) - Kashi na 2


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   mara suna m

    Kwanan wata don mutane:
    amsa kuwwa -e «\ e [1; 32m Kwanan wata:» $ (kwanan wata «+% d-% m-% Y») «\ e [1; 32m Lokaci:» $ (kwanan wata «+% T»)

    Gaskiya "uname -s":
    cat / proc / sys / kwaya / ostype

    Sunan Distro:
    kyanwa / sauransu / * saki | yanke -f2 -d »| shugaban -1

    Sunan mahaifi:
    cat / proc / sys / kwaya / sunan mai masauki

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

    Kernel Shafin:
    cat / proc / sys / kwaya / osrelease

  2.   Ingin Jose Albert m

    Ina matukar son gudummawar ku ta farko "kwanan wata ga mutane" tunda fitowar zai zama misali:

    Kwanan wata: 11-02-2016 Lokaci: 16:04:10

    Wanne a cikin maganganu, zenity ko gxmessage taga yana da saurin narkewa sosai!

    Tare da shawarar ka na biyu zan so sanya shi kamar haka:

    idan gaskiya ne "uname -s" && cat / proc / sys / kwaya / ostype; to amsa kuwwa "Ingantaccen tsarin aiki"; fi | ƙishirwa 1d

    Kuma a ƙarshe, na gode sosai don gudummawar ku na haɓaka kamar koyaushe!