شيل اسڪرپٽ استعمال ڪندي قدم قدم سان پنهنجو پروگرام ٺاهيو- حصو 2

۾ حصو 1 هن سيريز مان اسين ياد ڪندا آهيون ته ڪيئن عمل درآمد ڪجي:

۽ اڳئين پوئين ۾ ، اسان پنهنجو پاڻ کي کنيو بهتر طريقا پيروي ڪرڻ هڪ بهترين جڏهن ٺاهڻ لينڪس لاءِ شيش اسڪرپٽ لينڪس لاءِ ، ۽ خاص طور تي ڊي جي ترتيب ڏيڻ جي لحاظ سان شيبانگ ۽ هڪ بي ايس ايم (بيش سختي موڊ / سختي بيش موڊ).

بهترين طريقا GNU / Linux ۾ شيل اسڪرپٽ ٺاھڻ لاءِ بهترين حصو - حصو 1

بهترين طريقا GNU / Linux ۾ شيل اسڪرپٽ ٺاھڻ لاءِ بهترين حصو - حصو 2

 

شوبل اسڪرپٽهن پوسٽ ۾ اسان ڏسندا سين ته ڪيئن عملدرآمد اي لينڪس لاءِ بيش ۾ شيل اسڪرپٽ لاءِ ماحولياتي ڪيبل ماڊل، منهنجي هڪ مثال طور وٺندي پروگرام (ايپليڪيشنون) حقيقتن ۾ شيل اسڪرپٽ سڏيو ويندو آهي لينڪس پوسٽ انسٽال ڪريو - بيسڪنيئل اسڪرپٽ 8.0، پر پهرين جو هڪ نن summaryڙو خلاصو بهتر طريقا انهي جي ڪري توهان انهن کي ذهن ۾ رکو:

  • توهان جي ڪوڊ جي پيروي ڪريو
  • ڪوڊ جي حصن جي وچ ۾ ڌار ڌار جڳھ شامل ڪريو ،
  • جيترو ٿي سگهي ڪوڊ تي تبصرو ڪريو ،
  • انهن جي ڪارناما جي وضاحتي نالن سان متغير ٺاهيو.
  • ڪتب آڻڻ لاءِ نحو VARIABLE = $ (ڪمانڊ) استعمال ڪريو
  • ماڊلولس ۽ / يا متغيرات استعمال ڪريو: قائم ٿيل پاسورڊ سان يا بغير ڪنهن استعمال ڪندڙ صارف جي تصديق.
  • ماڊلز ۽ / يا متغيرات استعمال ڪريو: آپريٽنگ سسٽم جي تصديق (ڊسٽرو ، نسخو ، آرڪيٽيڪٽ ، ٻين جي وچ ۾.) ،
  • ماڊلز استعمال ڪريو (طريقا / سيڪشن) نازڪ يا بيچ جي عملن جي عمل جي تصديق ڪرڻ (سرگرمين / افعال) ،
  • صارف دوست دوستانه رسائي (صارف دوستي) فراهم ڪريو: ٽرمينل جي طرفان (ڊائيلاگ استعمال ڪندي مينيو ۽ رنگن سان) ۽ / يا ڊيسڪٽاپ جي طرفان (زينت ۽ گڪسس ايمج استعمال ڪندي ونڊوز سان)
  • صارف کي ڀليڪار ۽ الوداع (پيغام) جا ماڊل شامل ڪريو ، جيڪڏهن ضروري هجي ،
  • ٻيڻو رن تصديق ڪرائڻ وارو ماڊل شامل ڪريو
  • خارجي افعال ۽ / يا ماڊل سان گڏ اسڪرپٽ سائيز کي منطقي ڪريو ،
  • واضح ۽ واضح طريقي سان سڏ ڪيو ٻين ترجمانن کي ڪالون ،
  • ڪا ٻي منطقي ۽ عقلي سفارش ڏيو جيڪو توهان ضروري سمجهي.

هتي هڪ مثال آهي لينڪس لاءِ بيش ۾ شيل اسڪرپٽ لاءِ ماحولياتي ڪيبل ماڊل. انهي کي ماڊل (سيڪشن) هجڻ گهرجي جنهن ۾ اهي سڀئي خاص يا احتمالي متغير هوندا شيل اسڪرپٽ جي ضرورت آندي يا ٿيندي آئون ذاتي طور تي هيٺيان اضافو ڪيو:


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

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

نوٽ: توهان جي گهرجن يا پليت تي منحصر ڪري سگهو ٿا توهان ڪمانڊ جي حڪم کي شامل ڪري سگهو ٿا برآمد_ٻر برآمد پوئين متغير هيٺ ڏنل هر هڪ هيٺ ٺاهيل يا ٺاهي ٿو ۽ پنهنجي ڪارناما ٺاهي سڌو برآمد ڪن ٿا سڌو حڪم ڪمانڊ سان ٺاهي برآمد ڪريو my_variable = my_parameters

بعد ۾ ، مستقبل جي پوسٽن ۾ اسين هڪ مثال ڏسڻ لاءِ جاري رهنداسين ماڊلز (سيڪشن) اهو ڪم ڪري ٿو جهڙوڪ:

  • ڊبل عمل ضبط وضع يا ناڪامي عمل
  • اصلاح جو ماڊل
  • پاسورڊ سان استعمال ڪندڙ اختيار ڪندڙ ماڊل
  • آپريٽنگ سسٽم جي آرڪيٽيڪٽ جي وضاحت جو ماڊل
  • CODING LANGUAGE CONFIGURATION MODUL
  • عملي ماحول ۾ نمائش واري ماحول

ٻين جي وچ ۾!

اهي حاڪمن بابت پاڻ سِکائي سگهجن ٿا: گڪسو ، ڊائلاگ ، جي ايم سسج ، زينت ، اسپيڪڪ ، راندٻين ڪيترن جي وچ ۾ ٽرمينل ذريعي يا صارف جي ڊيسڪٽاپ لاءِ گرافڪ انٽرفيسس ٺاھڻ لاءِ ، سونڪ يا ملٽي ميڊيا وارنٽس سان، ۽ اڳڀرائي جي thatاڻ جيڪا اهي بعد ۾ استعمال ڪندا.

ياد رهي ته هي ۽ ڪجهه ٻيا سفارشون ماڊل ، فنڪشن ، متغير ، ڪمانڊ يا عمل عام طور تي اهو ڪري سگهجي ٿو ڪيترائي طريقا، ۽ جيڪو هتي ڏيکاريل آهي صرف هڪ آهي سادو رستو، جو گهڻا ممڪن ۽ ممڪن طريقا جنهن ۾ چيو عمل ٿي سگهي ٿو يا ٿي سگهي ٿو!

صرف ختم ڪرڻ لاءِ مان توهان کي ڇڏي ڏيندس منهنجي طرفان ٺهيل اسڪينريڪٽ، توهان کي ڏيکارڻ لاءِ جيڪو توهان لائق هوندو ، اهو پورو ڪرڻ کانپوءِ ديدي لينڪس ۾ شيل اسڪرپٽ آن لائين ڪورس:

ايل پي آئي-ايس بي 8 ٽيسٽ اسڪرين ڪاسٽ

(LINUX پوسٽ انسٽاليشن - اسڪائپ BICENTENARIO 8.0.0) - حصو 2

 


مضمون جو مواد اسان جي اصولن تي عمل ڪري ٿو ايڊيٽوريل اخلاقيات. غلطي ڪلڪ ڪرڻ جي رپورٽ لاءِ هتي.

2 تبصرا ، پنھنجو ڇڏ

پنهنجي راءِ ڏيو

پنهنجي اي ميل ايڊريس شايع نه ڪيو ويندو. گهري شعبن سان لڳل آهن *

*

*

  1. ڊيٽا جو ذميوار: Miguel Ángel Gatón
  2. ڊيٽا جو مقصد: ڪنٽرول سپيم ، تبصرو جي انتظام.
  3. سازش: توهان جي رضامندي
  4. ڊيٽا جي ابلاغ: ڊيٽا کي قانوني ذميواري کانسواءِ ٽئين پارٽين تائين رسائي نه ڏني ويندي.
  5. ڊيٽا اسٽوريج: ڊيٽابيس اويسينٽس نيٽورڪ (اي يو) پاران ميزباني ڪيل
  6. حق: ڪنهن به وقت توهان پنهنجي معلومات کي محدود ، ٻيهر ۽ ختم ڪري سگهو ٿا.

  1.   ناهن چيو

    انسانن جي لاءِ تاريخ:
    گونج -ا «\ e [1 ؛ 32 ايم تاريخ:» $ (تاريخ «+٪ d-٪ m-٪ Y») «\ e [1 ؛ 32m وقت:» $ (تاريخ «+٪ ٽي»)

    سچو ”اڻ-نالي“:
    ٻلي / پرو / ايس ايس / ڪينل / اوسٽائپ

    ڊسٽرو جو نالو:
    ٻلي / وغيره / * رليز | ڪٽ -f2 -d »| سر -1

    هسٽري جو نالو:
    ٻلي / پرو / ايس ايس / ڪنيل / ميزبان نالو

    OS تعميرات:
    [[-x / sbin / init]] ۽ & فائل / sbin / انٽ | awk '{پرنٽ $ 7}' | ٽ-ڊي '،' || [[-x / lib / systemd / systemd]] ۽ فائل / lib / systemd / سسٽم ڊي | awk '{پرنٽ $ 7}' | ٽ-ڊي '،' 2> / dev / null

    ڪرنل نسخو
    ٻلي / پرو / ايس ايس / ڪنيل / اوٽلس

  2.   اينگ جوز البرٽ چيو

    مون واقعي پسند ڪيو توھان جو پهريون حصو "تاريخ انسانن لاءِ" جئين ٻاھر مثلن ٿيندي

    تاريخ: 11-02-2016 ٽائيم: 16:04:10

    جيڪو هڪ ڊائلاگ ۾ مؤثر طريقي سان ، زينت يا گڪسس ايمج ونڊو تمام بصري طور تي هضم ٿيندو آهي.

    توهان جي ٻئي تجويز سان آئون هن کي رکڻ چاهيان ٿو:

    جيڪڏھن سچو "غير نام-س" & & cat / proc / sys / kernel / ostype ؛ پوءِ گونج “آپريٽنگ سسٽم تصديق ٿيل”؛ فائي | پياس 1 ڊي

    ۽ آخرڪار ، مهرباني ڪري هميشه جي مهرباني توهان جي افزائش تعاون تي!