Paano kumuha ng mga parameter mula sa Terminal na naglalapat ng Shell Scripting

El Scripting ng Shell, Ito ay tumutukoy sa pagpapatupad ng mga kumplikadong order sa GNU / Linux Terminal (Console), lubhang kapaki-pakinabang upang i-automate ang regular at mahahalagang aktibidad sa loob ng aming GNU / Linux Operating System, na nagpapahintulot sa amin na i-optimize ang aming Mga mapagkukunan at Oras, iyon ay, sa kung ano ang nilalaman dito ay tuklasin namin kung paano mula sa terminal maaari kaming magpatupad ng mga manu-manong utos na pagkatapos ay payagan kami iskedyul / awtomatiko mga aktibidad tungkol sa isang pagse-save ng koponan Mga Oras / Paggawa ng manu-manong o harapan na pagpapatupad, pagpapatupad ng nasabing mga order sa isang Bash Shell Script o katugma at ipinaliwanag sa isang praktikal at simpleng paraan.

Pagpili_007

Magtatakip kami as in isang solong utos ng utos podemos kunin at ipakita ang mga halaga / impormasyon mula sa Operating System / Hardware, na maaari nating ipatupad sa loob ng a Bash Shell script upang awtomatiko ang isang tiyak na gawain. Nakatuon sa Pinakamahusay na kasanayan kinakailangan upang makakuha ng isang mahusay na disenyo ng isang Script sa paraan mas mahusay at praktikal.

--------------------
Kunin ang pangalan ng unang gumagamit na nilikha sa system:
--------------------

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

----------------------
Kunin ang landas / home ng unang gumagamit na nilikha sa system:
----------------------

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

-------------
Suriin ang Kasalukuyang Petsa ng Kagamitan:
-------------

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

------------
Suriin ang Oras ng Kasalukuyang Kagamitan:
------------

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

——————————————
Suriin kung ang Host ay may koneksyon sa Internet:
——————————————

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
-------------
Suriin ang uri ng Operating System:
-------------

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

----------------------
Suriin ang pangalan, bersyon at pagbabagsak ng Operating System:
----------------------
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

----------------
Suriin ang arkitektura ng Operating System:
----------------

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

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

------------------
Suriin ang bersyon ng kernel ng Operating System:
------------------

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

----------
Suriin ang pangalan ng Host:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Suriin ang Panloob at Panlabas na IP (Pangunahing Output ng Internet):
----------------------

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

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

------------------
Suriin ang Mga Halaga (IP / MAC) ng Mga Network Interface:
------------------

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
————————————————
Suriin ang Proxy / Gateway ng Operating System:
————————————————

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

——————————————
Suriin ang Host Domain Domain Name:
——————————————

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

---------------------
Suriin ang Network Address (IP) ng Host DNS Server:
---------------------

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

-------------
Suriin ang mga gumagamit na konektado sa Host:
-------------

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
———————————————————————————————
Suriin ang User Folder na may higit pang data (# ng Mga File / Laki sa Bytes) sa Operating System:
----------------------------------

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

————————————————————————————
Suriin ang Laki sa Bytes ng Superuser Folder o iba pang Operating System Folder:
————————————————————————————

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

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

--------------------
Suriin ang Mga Nilikha na Mga Folder ng Gumagamit (Mga Pangalan at Mga Numero):
--------------------

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

---------------------
Suriin ang Mga Gumagamit na nilikha ang UID 0 AT 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

--------------
Suriin ang katayuan ng RAM at memorya ng Swap:
--------------

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

------------------------
Suriin ang Katayuan ng mga pagkahati / mount point ng isang SATA Disk:
------------------------

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

---------------------
Suriin ang Karaniwang Pag-load ng System (Mga nakapila na Proseso):
---------------------

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

————————————————
Suriin ang mga proseso ng Zombies sa Operating System:
————————————————

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

---------------------
Suriin ang Kabuuang Oras ng Trabaho (Start / On):
---------------------

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

---------------
Suriin ang mga parameter ng Video card:
---------------

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

Tagagawa:

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

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

Memorya ng RAM:

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

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

Modyul (Driver):

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

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

Pagpapabilis ng 3D:

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

--------------
Suriin ang mga parameter ng Processor (CPU):
--------------

===========

Tagagawa:

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

=========

Dami:

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

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

Mga Cores bawat CPU:

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

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

Kabuuang mga Cores bawat 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

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

Memorya ng cache ng CPU:

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

Sana ang maliliit na ito "Mga Tip" gawing madali para sa kanila na magsagawa ng pangunahing ngunit kapaki-pakinabang na mga pag-optimize, na sa pangkalahatan ay nakalaan lamang para sa mga eksperto sa Teknolohiya, Computing, Libreng Software at GNU / Linux.

SAMPLE SCREENS

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

PAALALA: Kung ang anumang linya ng utos ay nabigo upang maipatupad o maipakita ang wastong halaga, tiyaking manu-manong subukan ang bawat seksyon ng prompt ng utos upang subukan at ayusin ang mga halaga o syntax ng ilang mga variable.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Eduardo dijo

    Maraming salamat sa inyo.

    Napaka-kapaki-pakinabang.

  2.   HO2Gi dijo

    Napakagandang salamat.

  3.   Ing.Jose Albert dijo

    Ang kasiyahan upang makipagtulungan! Sa madaling panahon ay mai-mount ko ang marami pa sa paggamit ng Shell Scripting sa napaka praktikal na mga kaso.

  4.   cr0t0 dijo

    Napakahusay na engineer! Sana mayroong maraming mga artikulo sa Shell Scripting.

  5.   Francis Tovar dijo

    Ang mga utos na ipinakita doon ay mahusay at napaka-kapaki-pakinabang.

  6.   userarch dijo

    Salamat sa mahalagang impormasyon; ngunit sa aking kaso ang ilang mga utos ay hindi nagbibigay ng inaasahang resulta, halimbawa ang utos na "sino" at "w" ay hindi nagpapakita ng anuman; Nangyari ito sa akin mula nang gumawa ako ng ilang pag-update ng system (Gumagamit ako ng archlinux sa "manager" ng screen manager at grapikong kapaligiran na "xfce 4.12"). Anumang ideya kung ano ang nangyayari (ang resulta ay pareho kahit na gumagamit ako ng root ng gumagamit).
    Salamat sa inyo.

  7.   Ing.Jose Albert dijo

    Nais nila ang isang dalubhasang Sistema na ginawa gamit ang Shell Scripting na kapag hiniling ay bubuo ng pagkuha ng lahat ng mga parameter ng system sa anyo ng isang Ulat.

    Isang halimbawa ng kung ano ang maaaring gawin sa Shell Scripting:

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

    Tingnan ang Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY