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.
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
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.
Cám ơn rất nhiều.
Rất hữu dụng.
Tốt lắm, cảm ơn nhé .
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ế.
Kỹ sư giỏi lắm! Hy vọng có nhiều bài viết về Shell Scripting.
Các lệnh hiển thị ở đó là tuyệt vời và rất hữu ích.
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.
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