Kabuk Betiği uygulayarak Terminal'den parametreler nasıl çıkarılır

El Kabuk Betiği, İfade eder karmaşık emirlerin yerine getirilmesi üzerinde GNU / Linux Terminali (Konsol), bizim içindeki rutin ve önemli faaliyetleri otomatikleştirmek çok yararlıdır GNU / Linux İşletim Sistemi, bu da bizim optimize etmemizi sağlıyor Kaynaklar ve Zaman, yani, burada bulunanlarla, terminalden bize izin veren manuel komutları nasıl çalıştırabileceğimizi keşfedeceğiz. planla / otomatikleştir bir takımın tasarrufuyla ilgili faaliyetler Saat / İşçilik manuel veya yüz yüze yürütme, söz konusu emirleri Bash Shell Script veya uyumlu olarak uygulama ve pratik ve basit bir şekilde açıklanmıştır.

Selección_007

Olduğu gibi ele alacağız tek bir komut komutu biz İşletim Sisteminden / Donanımdan değerleri / bilgileri ayıklama ve görüntülemesonra bunu bir Bash Shell komut dosyası belirli bir görevi otomatikleştirmek için. Odaklanmak En İyi Uygulamalar bu şekilde mükemmel bir Senaryo tasarımı elde etmek için gerekli daha verimli ve pratik.

--------------------
Sistemde oluşturulan ilk kullanıcının adını alın:
--------------------

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

----------------------
Sistemde oluşturulan ilk kullanıcının / home yolunun yolunu alın:
----------------------

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

-------------
Mevcut Ekipman Tarihini Kontrol Edin:
-------------

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

------------
Mevcut Ekipman Zamanını Kontrol Edin:
------------

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

----------------
Sunucunun İnternet bağlantısı olup olmadığını kontrol edin:
----------------

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
-------------
İşletim Sisteminin türünü kontrol edin:
-------------

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

----------------------
İşletim Sisteminin adını, sürümünü ve yıkımını kontrol edin:
----------------------
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

----------------
İşletim Sisteminin mimarisini kontrol edin:
----------------

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

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

------------------
İşletim Sisteminin çekirdek sürümünü kontrol edin:
------------------

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

----------
Ana Bilgisayar adını kontrol edin:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Dahili ve Harici IP'yi (Ana İnternet Çıkışı) Kontrol Edin:
----------------------

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

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

------------------
Ağ Arayüzlerinin Değerlerini (IP / MAC) Kontrol Edin:
------------------

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
-----------------
İşletim Sisteminin Proxy / Ağ Geçidini Kontrol Edin:
-----------------

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

----------------
Ana Bilgisayar Ağı Etki Alanı Adını kontrol edin:
----------------

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

---------------------
Ana DNS Sunucusunun Ağ Adresini (IP) kontrol edin:
---------------------

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

-------------
Ana Makineye bağlı kullanıcıları kontrol edin:
-------------

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
---------------------------------
İşletim Sisteminde daha fazla veriye sahip Kullanıcı Klasörünü (Bayt cinsinden Dosya Sayısı / Boyut) kontrol edin:
----------------------------------

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

------------------------------
Süper Kullanıcı Klasörünün veya diğer İşletim Sistemi Klasörünün Bayt cinsinden Boyutu Kontrol Edin:
------------------------------

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

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

--------------------
Oluşturulan Kullanıcı Klasörlerini Kontrol Edin (Adlar ve Numaralar):
--------------------

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 VE GID 0 (SUPERUSERS) oluşturulmuş Kullanıcıları kontrol edin:
---------------------

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 ve Takas belleğinin durumunu kontrol edin:
--------------

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

------------------------
Bir SATA Diskinin bölümlerinin / bağlama noktasının Durumunu Kontrol Edin:
------------------------

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

---------------------
Ortalama Sistem Yükünü Kontrol Edin (Sıradaki İşlemler):
---------------------

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

-----------------
İşletim Sisteminde Zombies işlemlerini kontrol edin:
-----------------

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

---------------------
Toplam Çalışma Süresini Kontrol Edin (Başlatma / Açma):
---------------------

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

---------------
Video kartı parametrelerini kontrol edin:
---------------

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

Yapıcı:

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

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

Modül (Sürücü):

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

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

3D hızlandırma:

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

--------------
İşlemci (CPU) parametrelerini kontrol edin:
--------------

===========

Yapıcı:

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

=======

Model:

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

=========

Adet:

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

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

CPU başına çekirdek:

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

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

CPU Başına Toplam Çekirdek:

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 önbelleği:

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

Umarım bu küçükler "İpuçları" genellikle yalnızca bu konuda uzman olan kişilere ayrılan temel ancak yararlı optimizasyonları gerçekleştirmelerini kolaylaştırın Teknoloji, Bilgi İşlem, Özgür Yazılım ve GNU / Linux.

ÖRNEK EKRANLAR

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

HATIRLATMA: Herhangi bir komut satırı yürütülemezse veya doğru değeri görüntülerse, bazı değişkenlerin değerlerini veya sözdizimini denemek ve ayarlamak için komut isteminin her bir bölümünü manuel olarak test ettiğinizden emin olun.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   Eduardo dijo

    Çok teşekkür ederim.

    Çok kullanışlı.

  2.   HO2Gi dijo

    Çok iyi teşekkürler .

  3.   Jose Albert dijo

    İşbirliği yapmak büyük bir zevk! Yakında, çok pratik durumlarda Kabuk Komut Dosyası kullanımına ilişkin daha pek çok şeyi inceleyeceğim.

  4.   cr0t0 dijo

    Çok iyi mühendis! Umarım daha fazla Shell Scripting makalesi vardır.

  5.   Francis Tovar dijo

    Orada gösterilen komutlar mükemmel ve çok kullanışlıdır.

  6.   kullanıcı dijo

    Değerli bilgiler için teşekkür ederiz; ancak benim durumumda bazı komutlar beklenen sonucu vermez, örneğin "kim" ve "w" komutları hiçbir şey göstermez; Bu, bazı sistem güncellemeleri yaptığımdan beri başıma geldi ("lxdm" ekran yöneticisi ve "xfce 4.12" grafik ortamı ile archlinux kullanıyorum). Ne olduğu hakkında herhangi bir fikir (kullanıcı kökünü kullansam bile sonuç aynıdır).
    Teşekkür ederim.

  7.   Jose Albert dijo

    Shell Scripting ile yapılmış, talep üzerine sistemin tüm parametrelerinin bir Rapor şeklinde çıkarılmasını sağlayacak uzman bir Sistem istiyorlar.

    Kabuk Komut Dosyası ile yapılabileceklere bir örnek:

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

    Ekran video kaydına bakın: https://www.youtube.com/watch?v=cWpVQcbgCyY