Cách trích xuất các tham số từ Terminal áp dụng Shell Scripting

El Shell Scripting, Nó đề cập đến thực hiện các đơn đặt hàng phức tạp trên GNU / Linux Terminal (Bảng điều khiển), nó rất hữu ích để tự động hóa các hoạt động thường xuyên và quan trọng trong Hệ điều hành GNU / Linux, cho phép chúng tôi tối ưu hóa Nguồn lực và thời gian, nghĩa là, với những gì được chứa ở đây, chúng ta sẽ khám phá cách từ thiết bị đầu cuối, chúng ta có thể thực hiện các lệnh lệnh thủ công mà sau đó cho phép chúng ta lên lịch / tự động hóa hoạt động về đội tiết kiệm Giờ / Lao động thực hiện thủ công hoặc trực tiếp, thực hiện các lệnh đã nói trong Bash Shell Script hoặc tương thích và được giải thích một cách thiết thực và đơn giản.

Selection_007

Chúng tôi sẽ bao gồm trong một lệnh duy nhất podemos trích xuất và hiển thị các giá trị / thông tin từ Hệ điều hành / Phần cứng, sau đó chúng tôi có thể triển khai trong Tập lệnh Bash Shell để tự động hóa một tác vụ cụ thể. Tập trung vào Thực hành tốt nhất cần thiết để có được một thiết kế tuyệt vời của Tập lệnh theo cách hiệu quả và thiết thực hơn.

--------------------
Lấy tên của người dùng đầu tiên được tạo trong hệ thống:
--------------------

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

Giữa chúng tôi và
Lấy / đường dẫn trang chủ của người dùng đầu tiên được tạo trên hệ thống:
Giữa chúng tôi và

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

-------------
Kiểm tra Ngày thiết bị hiện tại:
-------------

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

------------
Kiểm tra thời gian thiết bị hiện tại:
------------

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

————————————————–
Kiểm tra xem Máy chủ có kết nối Internet không:
————————————————–

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
-------------
Kiểm tra loại Hệ điều hành:
-------------

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

----------------------
Kiểm tra tên, phiên bản và phiên bản phụ của Hệ điều hành:
----------------------
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

----------------
Kiểm tra kiến ​​trúc của Hệ điều hành:
----------------

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

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

------------------
Kiểm tra phiên bản hạt nhân của Hệ điều hành:
------------------

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

----------
Kiểm tra tên máy chủ:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Kiểm tra IP bên trong và bên ngoài (Đầu ra Internet chính):
----------------------

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

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

------------------
Kiểm tra Giá trị (IP / MAC) của Giao diện mạng:
------------------

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
Trong khi bạn
Kiểm tra Proxy / Gateway của Hệ điều hành:
Trong khi bạn

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

————————————————–
Kiểm tra Tên miền của Mạng Máy chủ:
————————————————–

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

---------------------
Kiểm tra Địa chỉ mạng (IP) của Máy chủ DNS Máy chủ:
---------------------

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

-------------
Kiểm tra người dùng được kết nối với Máy chủ:
-------------

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
Trong khi bạn đang ở
Kiểm tra Thư mục Người dùng với nhiều dữ liệu hơn (số Tệp / Kích thước tính bằng byte) trong Hệ điều hành:
---------------------------------

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

Trong khi bạn đang ở trong tình yêu
Kiểm tra Kích thước tính bằng byte của Thư mục Superuser hoặc Thư mục khác của Hệ điều hành:
Trong khi bạn đang ở trong tình yêu

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

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

--------------------
Kiểm tra Thư mục Người dùng đã Tạo (Tên và Số):
--------------------

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

---------------------
Kiểm tra Người dùng có UID 0 VÀ GID 0 (SUPERUSERS) được tạo:
---------------------

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

--------------
Kiểm tra trạng thái của RAM và bộ nhớ hoán đổi:
--------------

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

------------------------
Kiểm tra Trạng thái của phân vùng / điểm gắn kết của Đĩa 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

---------------------
Kiểm tra tải hệ thống trung bình (các quy trình được xếp hàng đợi):
---------------------

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

Trong khi bạn
Kiểm tra các quy trình Zombies trong Hệ điều hành:
Trong khi bạn

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

---------------------
Kiểm tra Tổng thời gian làm việc (Bắt đầu / Bật):
---------------------

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

---------------
Kiểm tra thông số card màn hình:
---------------

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

Nhà sản xuất:

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

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

Mô-đun (Trình điều khiển):

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

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

Tăng tốc 3D:

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

--------------
Kiểm tra các thông số của Bộ xử lý (CPU):
--------------

===========

Nhà sản xuất:

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

=======

mô hình:

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

=========

Số lượng:

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

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

Số lõi trên mỗi CPU:

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

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

Tổng số lõi trên mỗi 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

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

Bộ nhớ đệm CPU:

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

Tôi hy vọng những đứa trẻ này "Lời khuyên" giúp họ dễ dàng thực hiện các tối ưu hóa cơ bản nhưng hữu ích, thường chỉ dành cho những người là chuyên gia Công nghệ, Máy tính, Phần mềm Miễn phí và GNU / Linux.

MẪU MÀN HÌNH

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

NHẮC LẠI: Nếu bất kỳ dòng lệnh nào không thực thi hoặc hiển thị giá trị chính xác, hãy đảm bảo kiểm tra thủ công từng phần của dấu nhắc lệnh để thử và điều chỉnh các giá trị hoặc cú pháp của một số biến.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Eduardo dijo

    Cám ơn rất nhiều.

    Rất hữu dụng.

  2.   HO2Gi dijo

    Tốt lắm, cảm ơn nhé .

  3.   Jose Albert dijo

    Rất hân hạnh được hợp tác! Sắp tới tôi sẽ trình bày nhiều hơn về việc sử dụng Shell Scripting trong các trường hợp rất thực tế.

  4.   cr0t0 dijo

    Kỹ sư giỏi lắm! Hy vọng có nhiều bài viết về Shell Scripting.

  5.   Francis Tovar dijo

    Các lệnh hiển thị ở đó là tuyệt vời và rất hữu ích.

  6.   người dùng dijo

    Cảm ơn bạn vì những thông tin có giá trị; nhưng trong trường hợp của tôi, một số lệnh không cho kết quả như mong đợi, ví dụ lệnh "ai" và "w" không hiển thị gì cả; Điều này đã xảy ra với tôi kể từ khi tôi thực hiện một số cập nhật hệ thống (tôi sử dụng Archlinux với trình quản lý màn hình "lxdm" và môi trường đồ họa "xfce 4.12"). Bất kỳ ý tưởng nào sẽ xảy ra (kết quả là như nhau ngay cả khi tôi sử dụng root người dùng).
    Cảm ơn bạn.

  7.   Jose Albert dijo

    Họ muốn một Hệ thống chuyên nghiệp được tạo bằng Shell Scripting mà theo yêu cầu sẽ tạo ra việc trích xuất tất cả các tham số của hệ thống dưới dạng một Báo cáo.

    Một ví dụ về những gì có thể được thực hiện với Shell Scripting:

    Màn hình thử nghiệm LPI-SB8 (LINUX POST CÀI ĐẶT - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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