Kaip išgauti parametrus iš terminalo, naudojant „Shell Scripting“

El "Shell scenarijus, Tai reiškia sudėtingų užsakymų vykdymas apie GNU / „Linux“ terminalas (konsolė), labai naudinga automatizuoti įprastą ir svarbią veiklą mūsų viduje GNU / Linux operacinė sistema, kuris leidžia mums optimizuoti savo Ištekliai ir laikas, tai yra tai, kas čia yra, mes ištirsime, kaip iš terminalo mes galime vykdyti rankines komandų komandas, kurios mums tada leidžia planuoti / automatizuoti veikla apie komandos taupymą Valandos / darbas rankinis arba tiesioginis vykdymas, vykdant nurodymus „Bash Shell“ scenarijuje arba suderinamuose ir paaiškinamuose praktiškai ir paprastai.

Pasirinkimas_007

Apimsime kaip vienos komandos komanda podemos išskleisti ir rodyti vertes / informaciją iš operacinės sistemos / aparatinės įrangos, kurią tada galime įgyvendinti per a „Bash Shell“ scenarijus automatizuoti konkrečią užduotį. Didžiausias dėmesys Geriausia praktika norint gauti puikų scenarijaus dizainą efektyviau ir praktiškiau.

--------------------
Gaukite pirmojo sistemoje sukurto vartotojo vardą:
--------------------

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

————————————————————————
Gaukite pirmojo sistemoje sukurto vartotojo / home kelią:
————————————————————————

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

-------------
Patikrinkite dabartinės įrangos datą:
-------------

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

------------
Patikrinkite dabartinį įrangos laiką:
------------

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

————————————————
Patikrinkite, ar pagrindiniame kompiuteryje yra interneto ryšys:
————————————————

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
-------------
Patikrinkite operacinės sistemos tipą:
-------------

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

----------------------
Patikrinkite operacinės sistemos pavadinimą, versiją ir pakeitimą:
----------------------
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

----------------
Patikrinkite operacinės sistemos architektūrą:
----------------

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

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

------------------
Patikrinkite operacinės sistemos branduolio versiją:
------------------

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

----------
Patikrinkite pagrindinio kompiuterio pavadinimą:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Patikrinkite vidinį ir išorinį IP (pagrindinis interneto išėjimas):
----------------------

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

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

------------------
Patikrinkite tinklo sąsajų vertes (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
——————————————————
Patikrinkite operacinės sistemos tarpinį serverį / šliuzą:
——————————————————

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

————————————————
Patikrinkite pagrindinio tinklo domeno vardą:
————————————————

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

---------------------
Patikrinkite pagrindinio DNS serverio tinklo adresą (IP):
---------------------

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

-------------
Patikrinkite prie pagrindinio kompiuterio prisijungusius vartotojus:
-------------

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
————————————————————————————————
Patikrinkite vartotojo aplanką su daugiau duomenų (failų skaičius / dydis baitais) operacinėje sistemoje:
----------------------------------

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

—————————————————————————————
Patikrinkite „Superuser“ aplanko ar kito operacinės sistemos aplanko dydį baitais:
—————————————————————————————

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

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

--------------------
Patikrinkite sukurtus vartotojo aplankus (vardus ir numerius):
--------------------

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

---------------------
Patikrinkite vartotojus su sukurtais UID 0 IR 0 GID (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

--------------
Patikrinkite RAM ir keičiamosios atminties būseną:
--------------

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

------------------------
Patikrinkite skaidinių būseną / SATA disko prijungimo tašką:
------------------------

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

---------------------
Patikrinkite vidutinę sistemos apkrovą (eilėje esantys procesai):
---------------------

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

——————————————————
Patikrinkite „Zombies“ procesus operacinėje sistemoje:
——————————————————

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

---------------------
Patikrinkite bendrą darbo laiką (pradžia / įjungta):
---------------------

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

---------------
Patikrinkite vaizdo plokštės parametrus:
---------------

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

Kūrėjas:

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

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

Modulis (tvarkyklė):

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

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

3D pagreitis:

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

--------------
Patikrinkite procesoriaus (procesoriaus) parametrus:
--------------

===========

Kūrėjas:

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

=======

Modelis:

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

=========

Kiekis:

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

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

Branduoliai vienam procesoriui:

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

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

Iš viso branduolių vienam procesoriui:

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 talpyklos atmintis:

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

Tikiuosi, kad šie mažyliai „Patarimai“ palengvins jiems pagrindinius, bet naudingus optimizavimus, kurie paprastai yra skirti tik ekspertams Technologija, skaičiavimas, nemokama programinė įranga ir GNU / Linux.

MĖGINIŲ EKRANAI

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

PRIMINIMAS: Jei kurios nors komandinės eilutės nepavyksta vykdyti arba rodoma teisinga reikšmė, būtinai rankiniu būdu patikrinkite kiekvieną komandų eilutės sekciją, kad pabandytumėte pakoreguoti kai kurių kintamųjų reikšmes ar sintaksę.


7 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Eduardo sakė

    Labai ačiū.

    Labai naudingas.

  2.   HO2Gi sakė

    Labai gerai, ačiū .

  3.   Ing. Jose Albertas sakė

    Malonu bendradarbiauti! Netrukus daug daugiau naudosiu „Shell Scripting“ naudojimu labai praktiškais atvejais.

  4.   cr0t0 sakė

    Labai geras inžinierius! Tikimės, kad yra daugiau „Shell Scripting“ straipsnių.

  5.   Francisco Tovaras sakė

    Parodytos komandos yra puikios ir labai naudingos.

  6.   vartotojo arch sakė

    Ačiū už vertingą informaciją; bet mano atveju kai kurios komandos neduoda laukiamo rezultato, pavyzdžiui, komandos „kas“ ir „w“ nieko nerodo; taip nutiko man, nes atlikau tam tikrą sistemos atnaujinimą (naudoju „archlinux“ su ekrano tvarkykle „lxdm“ ir grafine aplinka „xfce 4.12“). Bet kokia idėja, kas vyksta (rezultatas yra tas pats, net jei aš naudoju vartotojo šaknį).
    Ačiū.

  7.   Ing. Jose Albertas sakė

    Jie norėtų, kad su „Shell Scripting“ sukurta ekspertinė sistema sukurtų visų sistemos parametrų ištraukimą ataskaitos forma.

    Pavyzdys, ką galima padaryti naudojant „Shell Scripting“:

    „LPI-SB8“ bandomasis ekrano perdavimas („LINUX POST INSTALL“ - „SCRIPT BICENTENARIO 8.0.0“)
    („lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)

    Žr. „Screencast“: https://www.youtube.com/watch?v=cWpVQcbgCyY