Πώς να εξαγάγετε παραμέτρους από το Terminal που εφαρμόζει Shell Scripting

El Shell ScriptingΑναφέρεται στο εκτέλεση σύνθετων παραγγελιών επί Τερματικό GNU / Linux (Κονσόλα), είναι πολύ χρήσιμο να αυτοματοποιούμε ρουτίνες και σημαντικές δραστηριότητες μέσα μας Λειτουργικό σύστημα GNU / Linux, που μας επιτρέπει να βελτιστοποιήσουμε το δικό μας Πόροι και χρόνος, Δηλαδή, με όσα περιέχονται εδώ θα διερευνήσουμε πώς από το τερματικό μπορούμε να εκτελέσουμε χειροκίνητες εντολές που μας επιτρέπουν πρόγραμμα / αυτοματοποίηση δραστηριότητες για εξοικονόμηση ομάδας Ώρες / Εργασία χειροκίνητης ή προσωπικής εκτέλεσης, υλοποίησης των εν λόγω παραγγελιών σε Bash Shell Script ή συμβατή και εξηγείται με πρακτικό και απλό τρόπο.

Επιλογή_007

Θα καλύψουμε όπως στο μία εντολή εντολής μπορώ εξαγάγετε και εμφανίστε τιμές / πληροφορίες από το Λειτουργικό Σύστημα / Υλικό, το οποίο μπορούμε στη συνέχεια να εφαρμόσουμε μέσα σε ένα Σενάριο Bash Shell να αυτοματοποιήσει μια συγκεκριμένη εργασία. Εστίαση στο Βέλτιστες πρακτικές απαραίτητο για να αποκτήσετε έναν εξαιρετικό σχεδιασμό ενός σεναρίου με τον τρόπο πιο αποτελεσματική και πρακτική.

--------------------
Λάβετε το όνομα του πρώτου χρήστη που δημιουργήθηκε στο σύστημα:
--------------------

USER_1000=$(cat /etc/passwd | grep 1000 | cut -d: -f1) ;  echo $USER_1000

USER_1001=$(cat /etc/passwd | grep 1001 | cut -d: -f1) ;  echo $USER_1001

----------------------
Αποκτήστε τη / αρχική διαδρομή του πρώτου χρήστη που δημιουργήθηκε στο σύστημα:
----------------------

USER_1000=$(cat /etc/passwd | grep 1000 | cut -d: -f1) ; HOME_USER_1000=/home/$USER_1000 ; echo $HOME_USER_1000

USER_1001=$(cat /etc/passwd | grep 1001 | cut -d: -f1) ; HOME_USER_1001=/home/$USER_1001 ; echo $HOME_USER_1001

-------------
Ελέγξτε την τρέχουσα ημερομηνία εξοπλισμού:
-------------

FECHA_ACTUAL=$(date +"%d %b %y") ; echo $FECHA_ACTUAL

------------
Ελέγξτε τον τρέχοντα χρόνο εξοπλισμού:
------------

HORA_ACTUAL=$(date +"%H:%M") ; echo $HORA_ACTUAL

————————————————–
Ελέγξτε εάν ο κεντρικός υπολογιστής διαθέτει σύνδεση στο Διαδίκτυο:
————————————————–

if ping -c 1 8.8.8.8 &> /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi ; echo $CONEXION_INTERNET

TEST_PING=$(ping 192.168.3.249 -c 5 | grep packet | awk '{print $6}' | cut -f1 -d%) ; echo $TEST_PING % de Perdida de paquetes
TEST_LATENCIA=$(ping 8.8.8.8 -c 5 | grep packet | awk '{print $10}' | cut -f1 -d%) ; echo $TEST_LATENCIA de Latencia del Enlace
-------------
Ελέγξτε τον τύπο του λειτουργικού συστήματος:
-------------

SISTEMA_OPERATIVO=$(uname -o) ; echo $SISTEMA_OPERATIVO

----------------------
Ελέγξτε το όνομα, την έκδοση και την ανατροπή του λειτουργικού συστήματος:
----------------------
NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\") ; echo $NOMBRE_SISTEMA
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g') ; echo $VERSION_SISTEMA

SUBVERSION_SISTEMA=$(lsb_release -d | awk '{print $4}') ; echo $SUBVERSION_SISTEMA

----------------
Ελέγξτε την αρχιτεκτονική του λειτουργικού συστήματος:
----------------

ARQUITECTURA=$(uname -m) ; echo $ARQUITECTURA

ARQUITECTURA=$(uname -m) ; if [[ "$ARQUITECTURA" = "x86" ]]; then ARQ_SISTEMA=32; else ARQ_SISTEMA=64; fi ; echo $ARQ_SISTEMA

------------------
Ελέγξτε την έκδοση του πυρήνα του λειτουργικού συστήματος:
------------------

VERSION_KERNEL=$(uname -r) ; echo $VERSION_KERNEL

----------
Ελέγξτε το όνομα κεντρικού υπολογιστή:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Έλεγχος εσωτερικής και εξωτερικής IP (Κύρια έξοδος Διαδικτύου):
----------------------

IP_INTERNA=$(hostname -I) ; echo $IP_INTERNA

IP_EXTERNA=$(curl -s ipecho.net/plain;echo) ; echo $IP_EXTERNA

------------------
Έλεγχος τιμών (IP / MAC) διασυνδέσεων δικτύου:
------------------

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) ; echo $IP_ETH0

MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}') ; echo $MAC_ETH0

IP_WLAN0=$(ifconfig wlan0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) ; echo $IP_WLAN0

MAC_WLAN0=$(ifconfig wlan0 | sed -n '1p' | awk '{print $5}') ; echo $MAC_WLAN0
-----------------
Ελέγξτε τον διακομιστή μεσολάβησης / πύλη του λειτουργικού συστήματος:
-----------------

PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}') ; echo $PROXY_GATEWAY

————————————————–
Ελέγξτε το όνομα τομέα του κεντρικού δικτύου:
————————————————–

DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}') ; echo $DOMINIO

---------------------
Ελέγξτε τη διεύθυνση δικτύου (IP) του κεντρικού διακομιστή DNS:
---------------------

IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') ; echo $IP_SERVIDOR_DNS

-------------
Ελέγξτε τους χρήστες που είναι συνδεδεμένοι στον κεντρικό υπολογιστή:
-------------

who>/tmp/who ; echo -e "Usuarios conectados al Host :"  && echo "" && echo "Usuarios Puertos      Fecha      Hora  Pantalla" ; echo "*************************************************************************" && cat /tmp/who

USUARIOS_CONECTADOS=$(who | awk '{print $1}') ; echo $USUARIOS_CONECTADOS

USER_ONLINE1=$(who | awk '{print $1}') ; echo $USER_ONLINE1 | wc -w

USER_ONLINE2=$(top -n 1 -b | grep "load average:" | awk '{print $6}') ; echo $USER_ONLINE2
---------------------------------
Ελέγξτε το φάκελο χρήστη με περισσότερα δεδομένα (# αρχείων / μεγέθους σε bytes) στο λειτουργικό σύστημα:
----------------------------------

CARPETA_USUARIO1=$(ls -l /home | sed '1 d' | sort -k2 | sed q | awk '{print $9}') ; echo $CARPETA_USUARIO1

DATA_USUARIO1=$(du -sh /home/* | sort -r | sed q | awk '{print $1}') ; echo $DATA_USUARIO1

------------------------------
Έλεγχος μεγέθους σε byte του φακέλου Superuser ή άλλου φακέλου του λειτουργικού συστήματος:
------------------------------

DATA_ROOT=$(du -sh /root | awk '{print $1}') ; echo $DATA_ROOT

DATA_CARPETA1=$(du -sh /var | awk '{print $1}') ; echo $DATA_CARPETA1

--------------------
Έλεγχος δημιουργημένων φακέλων χρήστη (ονόματα και αριθμοί):
--------------------

NOMBRES_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}') ; echo $NOMBRES_CARPETAS

NUMERO_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}') ; echo $NUMERO_CARPETAS | wc -w

---------------------
Ελέγξτε τους χρήστες με UID 0 ΚΑΙ GID 0 (SUPERUSERS) που δημιουργήθηκαν:
---------------------

SUPERUSUARIOS_UID=$(awk -F: '{if ($3==0) print $1}' /etc/passwd) ; echo $SUPERUSUARIOS_UID

SUPERUSUARIOS_GID=$(awk -F: '{if ($3==0) print $1}' /etc/passwd) ; echo $SUPERUSUARIOS_GID

--------------
Ελέγξτε την κατάσταση της μνήμης RAM και της ανταλλαγής μνήμης:
--------------

MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}') ; echo $MEM_TOTAL

MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}') ; echo $MEM_USADA

MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}') ; echo $MEM_LIBRE

MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}') ; echo $MEM_COMPARTIDA

MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}') ; echo $MEM_ALMACENADA

MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}') ; echo $MEM_CACHEADA

SWAP_TOTAL=$(free -h | sed '1 d' | grep Swap: | awk '{print $2}') ; echo $SWAP_TOTAL

SWAP_USADA=$(free -h | sed '1 d' | grep Swap: | awk '{print $3}') ; echo $SWAP_USADA


SWAP_LIBRE=$(free -h | sed '1 d' | grep Swap: | awk '{print $4}') ; echo $SWAP_LIBRE

------------------------
Ελέγξτε την κατάσταση των διαμερισμάτων / το σημείο προσάρτησης ενός δίσκου SATA:
------------------------

PART1_TOTAL=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $2}') ; echo $PART1_TOTAL

PART1_USADO=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $3}') ; echo $PART1_USADO

PART1_DISPONIBLE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $4}') ; echo $PART1_DISPONIBLE

PART1_PORCENTAJE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $5}') ; echo $PART1_PORCENTAJE

PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $6}') ; echo $PART1_PUNTOMONTAJE

---------------------
Έλεγχος μέσου φορτίου συστήματος (Διαδικασίες σε ουρά):
---------------------

CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $10}' | sed 's/,//2') ; echo $CARGA_1MIN

CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $11}' | sed 's/,//2') ; echo $CARGA_5MIN

CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2') ; echo $CARGA_15MIN

CARGA_1MIN=$(uptime | awk '{print $8}' | sed 's/,//2') ; echo $CARGA_1MIN

CARGA_5MIN=$(uptime | awk '{print $9}' | sed 's/,//2') ; echo $CARGA_5MIN

CARGA_15MIN=$(uptime | awk '{print $10}' | sed 's/,//2') ; echo $CARGA_15MIN

-----------------
Ελέγξτε τις διαδικασίες Zombies στο λειτουργικό σύστημα:
-----------------

PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}') ; echo $PROC_ZOMBIE

---------------------
Έλεγχος συνολικού χρόνου εργασίας (Έναρξη / Ενεργοποίηση):
---------------------

TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) ; echo $TIEMPO_ENCENDIDO

---------------
Ελέγξτε τις παραμέτρους της κάρτας βίντεο:
---------------

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

Κατασκευαστής:

FAB_TVIDEO=$(lspci -v | grep "VGA" | cut -d " " -f05) ; echo $FAB_TVIDEO

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

RAM:

MEM_TVIDEO=$(lspci -v -s `lspci | awk '/VGA/{print $1}'` | sed -n '/Memory.*, prefetchable/s/.*\[size=\([^]]\+\)M\]/\1/p') ; echo $MEM_TVIDEO

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

Ενότητα (Πρόγραμμα οδήγησης):

DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05) ; echo $DRV_TVIDEO

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

3D επιτάχυνση:

A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}') ; echo $A3D_TVIDEO

--------------
Έλεγχος παραμέτρων επεξεργαστή (CPU):
--------------

===========

Κατασκευαστής:

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}') ; echo $FABRICANTE_CPU

=======

Modelo:

MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $MODELO_CPU

=========

ποσότητα:

NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; echo $TOTAL_CPU

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

Πυρήνες ανά CPU:

NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; echo $NUCLEO_CPU

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

Σύνολο πυρήνων ανά CPU:

NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; TOTAL_NUCLEO_CPU=$((`expr $TOTAL_CPU \* $NUCLEO_CPU`)) ; echo $TOTAL_NUCLEO_CPU

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

Μνήμη προσωρινής μνήμης CPU:

CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $CACHE_CPU

Ελπίζω αυτά τα μικρά "Συμβουλές" διευκολύνετέ τους να πραγματοποιήσουν βασικές αλλά χρήσιμες βελτιστοποιήσεις, οι οποίες γενικά προορίζονται μόνο για άτομα που είναι ειδικοί Τεχνολογία, Πληροφορική, Ελεύθερο Λογισμικό και GNU / Linux.

ΟΘΟΝΕΣ ΔΕΙΓΜΑΤΟΣ

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

ΥΠΕΝΘΥΜΙΣΗ: Εάν κάποια γραμμή εντολών αποτύχει να εκτελέσει ή να εμφανίσει τη σωστή τιμή, βεβαιωθείτε ότι έχετε δοκιμάσει χειροκίνητα κάθε ενότητα της γραμμής εντολών για να δοκιμάσετε και να προσαρμόσετε τις τιμές ή τη σύνταξη ορισμένων μεταβλητών.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Εντουάρντο dijo

    Σας ευχαριστώ πολύ.

    Πολύ χρήσιμο.

  2.   HO2Gi dijo

    Πολύ καλά, ευχαριστώ.

  3.   Ινγκ. Jose Albert dijo

    Μια χαρά για συνεργασία! Σύντομα θα προσθέσω πολλά περισσότερα στη χρήση του Shell Scripting σε πολύ πρακτικές περιπτώσεις.

  4.   cr0t0 dijo

    Πολύ καλός μηχανικός! Ας ελπίσουμε ότι υπάρχουν περισσότερα άρθρα Shell Scripting.

  5.   Φρανσίσκο Τοβάρ dijo

    Οι εντολές που εμφανίζονται είναι εξαιρετικές και πολύ χρήσιμες.

  6.   userarch dijo

    Ευχαριστώ για τις πολύτιμες πληροφορίες. αλλά στην περίπτωσή μου ορισμένες εντολές δεν δίνουν το αναμενόμενο αποτέλεσμα, για παράδειγμα η εντολή "Who" και "w" δεν εμφανίζουν τίποτα. αυτό συνέβη σε μένα από τότε που έκανα κάποια ενημέρωση συστήματος (χρησιμοποιώ το archlinux με τον διαχειριστή οθόνης "lxdm" και το περιβάλλον γραφικών "xfce 4.12"). Οποιαδήποτε ιδέα τι συμβαίνει (το αποτέλεσμα είναι το ίδιο ακόμα και αν χρησιμοποιώ root user).
    Σας ευχαριστώ.

  7.   Ινγκ. Jose Albert dijo

    Θα ήθελαν ένα εξειδικευμένο Σύστημα φτιαγμένο με Shell Scripting, το οποίο, κατόπιν αιτήματος, θα δημιουργήσει την εξαγωγή όλων των παραμέτρων του συστήματος με τη μορφή Αναφοράς.

    Ένα παράδειγμα του τι μπορεί να γίνει με το Shell Scripting:

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Δείτε το Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY