Si të arrini një Terminal SysAdmin duke zbatuar Shkrimet Shell

El Shell Scripting, Ajo i referohet ekzekutimi i urdhrave komplekse rreth Terminali GNU / Linux (Console), është shumë e dobishme të automatizojmë aktivitetet rutinë dhe të rëndësishme brenda aktiviteteve tona Sistemi Operativ GNU / Linux, gjë që na lejon të zgjedhim tonat Burimet dhe koha.

Përzgjedhja_007

Prandaj, përdorimi i tij nga terminali na lejon të ekzekutojmë komandat komplekse të komandave manualisht ose automatikisht përmes skripteve ose si rutinat e programuara brenda skedarëve të ngarkuar automatikisht ose detyrave të planifikuara brenda Sistemit Operativ. GNU / Linux. Dhe për një Përdorues i mesëm, i avancuar ose SysAdmin el orari (automatizimi) detyrat, alarme dhe / ose njoftimet në një host (PC / server) për të ruajtur Orët / Puna Për ekzekutimin manual ose ballë për ballë, është diçka themelore dhe thelbësore për kryerjen e mirë të punës tuaj si profesionist i nivelit të lartë.

Tjetra, ne do të tregojmë se si a të dhëna (vlera / parametri) ruajtur më parë në një ndryshore nga një komandë Guaskë bash ose i pajtueshëm, mund të shfaqet në terminalin e sistemit tuaj operativ GNU / linux, në një mënyrë praktike dhe të thjeshtë. Përveç akordimit të terminalit të shpejtë.

Hapi i parë: Redaktoni .bashrc të përdoruesit tuaj

Me redaktorin që keni zgjedhur (vi, nano, etj.) Redaktoni skedari .bashrc të përdoruesit tuaj që duhet të jetë i vendosur brenda shtëpisë së të njëjtit, domethënë, për shembull: "/ Home / my_user".

Vendosni përmbajtjen e secilës nga linjat e mëposhtme dhe të gjitha ato shtesë që i konsideroni të përshtatshme për t'i treguar përdoruesit kur ekzekutoni një terminal përdoruesi:

sleep 3

clear

########################### PARÁMETROS DE MONITOREO ###########################

NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

clear

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                         ESTE EQUIPO TIENE INSTALADO                         "
echo "                                                                             "
echo "TIPO DE S.O.: <"`uname -o`">                                                 "
echo "NOMBRE / VERSIÓN DEL S.O.: &lt;"$NOMBRE_SISTEMA"&gt; / &lt;"$VERSION_SISTEMA"&gt;        "
echo "KERNEL / ARQUITECTURA: <"`uname -r`"> / <"`uname -m`">                       "
echo "INFO DEL CPU: ("$FABRICANTE_CPU") / ("$MODELO_CPU") / ("$NUM_CPU") / ("$NUCLEO_CPU") / ("$CACHE_CPU")"
printf %80s |tr " " "="
echo ""
echo ""

PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]# "

`

Hapi i dytë: Redaktoni rrënjën .bashrc

Përsëri me redaktorin e përdorur tashmë edito skedari .bashrc del rrënja e superpërdoruesit i cili duhet të jetë i vendosur brenda shtegut / rrënjës së tij.

Vendosni përmbajtjen e secilës nga linjat e mëposhtme dhe të gjitha ato shtesë që i konsideroni të përshtatshme për t'i treguar përdoruesit kur ekzekutoni një terminal përdoruesi:

########################### PARÁMETROS DE MONITOREO ###########################

alias cc='clear'

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

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

DATA_USUARIO1=$(du -sh /home/ | sort -r | awk '{print $1}')
DATA_ROOT=$(du -sh /root | awk '{print $1}')
DATA_VAR=$(du -sh /var | awk '{print $1}')

MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')

PART1_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
PART1_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')

CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')

CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')

USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $8}')
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')

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

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')

###############################################################################

if ping -c 1 8.8.8.8 &amp;&gt; /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi

set -o vi

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                    PARÁMETROS ACTUALES DE FUNCIONAMIENTO                    "
echo "                                                                             "
echo "MEMORIA TOTAL: ("$MEM_TOTAL") - MEMORIA USADA: ("$MEM_USADA") - MEMORIA LIBRE: ("$MEM_LIBRE")"
echo "DISCO PRINCIPAL: ("$PART1_TOTAL") - ESPACIO USADO: ("$PART1_USADO") - ESPACIO LIBRE: ("$PART1_DISPONIBLE") - %: ("$PART1_PORCENTAJE") - PARTICION: ("$PART1_PUNTOMONTAJE")"
echo "CARGA PROMEDIO DEL SISTEMA: 1 MIN ("$CARGA_1MIN") -  5 MIN ("$CARGA_5MIN") - 15 MIN ("$CARGA_15MIN")"
echo "USUARIOS CONECTADOS: ("$USER_ONLINE") -  PROCESOS ZOMBIES: ("$PROC_ZOMBIE")"
echo "TIEMPO ARRANQUE/ENCENDIDO: ("$TIEMPO_ENCENDIDO")                             "
echo "ESPACIO USADO: /home = ("$DATA_USUARIO1") /root = ("$DATA_ROOT") /var = ("$DATA_VAR")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]$ "

Hapi i tretë: Redaktoni rrënjën .bashrc

Dilni dhe terminali. Filloni përsëri dhe eksperimentoni me ndryshimet. Duhet të duket e ngjashme me atë të treguar më poshtë, në imazhet e mëposhtme:

Hapi 1: Fillimi i terminalit

Hapi 2: Redakto përdoruesin .bashrc

Hapi 3: Përmbajtja e futur në përdoruesin .bashrc

Hapi 4: Hyrja në rrënjë

Hapi 5: Hyrja në rrënjë

Hapi 6: Redaktoni skedarin rrënjë .bashrc

Hapi 7: Redaktoni skedarin rrënjë .bashrc

Hapi 8: Redaktoni skedarin rrënjë .bashrc

Hapi 9: Shembull demonstrimi i një Terminali të ri të Klientit

Hapi 10: Shembull demonstrimi i një Terminali të ri të Klientit

Hapi 11: Shembull demonstrimi i një Terminali të ri të Klientit

Hapi i katërt (opsionale): Akordimi i pseudonimeve

Mos harroni se përdorimi i pseudonimeve brenda .Bashrc gjithashtu mund t’ju ​​kursejë shumë kohë për të shkruar. Mos komentoni ato që vijnë me parazgjedhje brenda .bashrc, të tilla si:

alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'

Dhe shtoni ato që i konsideroni të nevojshme, pasi ato janë komanda të përdorura shpesh, të tilla si:

alias cc='clear'

Shtë e rëndësishme të dini më shumë në mënyrë autodidakt për të ndryshoret, pseudonimet, .bashrc dhe gjuha guaska e bashit për një nivel më të përparuar të terminalit. E njëjta gjë mund të arrihet kur filloni seanca të largëta përmes ssh, të cilat mund t'i shohim më vonë në botimet e tjera të ardhshme.

Unë shpresoj që këta të vegjël "Këshilla" e bëjnë më të lehtë për ta që të kryejnë optimizime themelore, por të dobishme, të cilat zakonisht janë të rezervuara vetëm për ekspertët në Teknologji, Informatikë, Program i Lirë dhe GNU / Linux.

KUJDES: Nëse ndonjë rresht komande nuk arrin të ekzekutojë ose shfaq vlerën e saktë, sigurohuni që të provoni manualisht secilën pjesë të komandës së shpejtë për të provuar dhe rregulluar vlerat ose sintaksën e disa ndryshoreve.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   yippekay dijo

    Aliasing është më e mira. Nuk mendoj keq për disa që përfshijnë si parazgjedhje në bashrc: la (ls -a) dhe ll (ls -l). Në të fundit shtoj parametrin -h.

    Pseudonime të tjera praktike:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (e përdor për të hequr direktoritë me skedarë)
    mbyllje = 'mbyllje sudo -h tani'
    del = 'hedhja e plehrave' (zhvendos skedarët në plehra, komanda e paketës së plehrave)

  2.   tonin dijo

    Që kur pashë këtë pseudonim vitin e kaluar në Reddit, ai ka qenë i preferuari im:
    alias qij = 'sudo $ (histori -p !!)'

  3.   Babil dijo

    Artikulli dhe pamja që i jep konsolës është shumë e mirë. Disa kontribute:
    - Në Ubuntu pseudonimet mund të vendosen në një skedar të veçantë (.bash_aliases) në pjesën tjetër të shpërndarjeve që nuk i di por e bën duke shtuar rreshtat e mëposhtëm në .bashrc:
    nëse [-f ~ / .bash_aliases]; atëherë
    . ias / .bash_aliases
    fi
    Kjo lejon që të ketë pseudonime më të porositura dhe për harresat si unë mund të shtoni këtë pseudonim që tregon skedarin që rendit pseudonimet:
    alias lsalias = 'më shumë ~ / .bash_aliases'
    - Unë gjithashtu kam një skedar teksti komandues që përdoret rrallë (të cilin zakonisht nuk e mbaj mend) i quajtur command_utiles.txt dhe i gatshëm me pseudonimin e mëposhtëm: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - Më shumë pseudonime që përdor:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | më shumë' # Tregon skedarët në detaje të renditura sipas madhësisë
    alias lod = 'du -sk * | lloj -rn '# Shfaq drejtoritë e renditura sipas madhësisë
    alias deo = 'du -sh' # Vlerësoni hapësirën e zënë nga drejtimi i treguar
    alias psa = 'ps -eafw | më shumë '# Shfaq të gjitha proceset me më shumë
    alias psg = 'ps -eafw | grep '# Trego procesin e treguar
    - Më në fund, një alternativë për përdoruesit që unë bëra:
    SYSTEM_NAME = $ (cat / etc / os-release | grep NAME | grep -v "VERSION" | sed -n '1p' | cut -f2 -d \ »)
    SYSTEM_VERSION = $ (cat / etc / os-release | grep VERSION = | sed -n '1p' | sed 's / VERSION = //' | sed 's / »// g')
    MANUFACTURER_CPU = $ (grep "vendor_id" / proc / cpuinfo | sed q | awk '{print $ 3}')
    CPU_MODEL = $ (grep "emri i modelit" / proc / cpuinfo | sed q | prerë-d ":" -f 2 | awk '{shtyp $ 0}')
    NUM_CPU = $ (grep "përpunuesi" / proc / cpuinfo | klasifiko -r | sed q | awk '{shtyp $ 3}' | jehonë expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "bërthamat e CPU" / proc / cpuinfo | sed q | awk '{shtyp $ 4}')
    CACHE_CPU = $ (grep "size cache" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | lloj -r | awk '{shtyp $ 1}')

    qartë
    printf% 130s | tr »» «=»
    hodhi jashtë ""
    jehona «DATA:«date +%c --date='+1 year'
    jehona «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    jehona "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    echo "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Bërthama," $ CACHE_CPU "Cache"
    jehonë «HAPACESIRA E PEDRDORUR:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    hodhi jashtë ""
    ############################
    jehonë "komandat e dobishme:"
    echo »- Instaloni RPM në sistemin e paketës DEB: alien -c -i paketë.rpm»
    echo »- Ndrysho përdoruesin dhe grupin e skedarëve në mënyrë rekursive: përdoruesi i chown -hR: grupi [skedari ose dir]
    echo »- Kopjimi duke mbajtur lejet: cp -ax destinacioni i burimit»
    echo »- Trego depot aktive: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Shto një depo: apt-add-depo ppa: depo»
    jehonë »- T TO SHIKONI M M SHUM KOMANDAT E Cutilit»
    jehonë »- TREGOJ ALIAS lsalias»
    printf% 130s | tr »» «=»
    hodhi jashtë ""
    hodhi jashtë ""
    # PS1 = »[\ e [33; 1m] ┌─ ([\ e [34; 1m] \ u @ \ h [\ e [37; 1m]) * * * * \ d - \ t * * * * {[\ e [31; 1m] \ w [\ e [33; 1m]} \ n└──┤ [\ e [32m] # »
    PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «

    1.    abaddon s dijo

      pse me mire te mos shkruani artikullin tuaj?

  4.   abaddon s dijo

    KETO JAN THE TUTORIALET Q I M L Pëlqejnë !!!!!!!!!

  5.   Ing Jose Albert dijo

    Epo, unë jam shumë i kënaqur që ju pëlqyen dhe e shërbyen atë!

    Nesër shpresoj të botoj një artikull tjetër! Shpatet.

  6.   harku i përdoruesit dijo

    Përshëndetje dhe mirënjohje të pafund për ndarjen e këtij informacioni.
    Unë nuk kam shumë njohuri në lidhje me administrimin e GNU / Linux (unë jam thjesht një përdorues empirik dhe kurioz pa trajnim akademik), por mbaj mend që kam lexuar në disa faqe në internet për problemet e sigurisë me përshkallëzimin e privilegjeve; disa komanda dhe tuba në skriptin .bashrc, më duket se mund të lehtësojnë punën e një hakeri ose krisësi.
    Me respekt dhe shumë mirënjohës.

  7.   Ing Jose Albert dijo

    Me Shell Scripting optimizimi i terminalit është i thjeshtë, shihni sa larg mund të shkoni duke bërë një Scripting të mirë të Shell.

    ScreenCast i Testit LPI-SB8 (INSTALIMI I POSTS LINUX - BICENTENARIO SHKRIMI 8.0.0)
    (lpi_sb8_adecuación-audiovizual_2016.sh / 43Kb)

    Shikoni shfaqjen në ekran: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   fushë me bar dijo

    Tutorial i shkëlqyeshëm! Ndonjë libër që ju rekomandoni në linux për të mësuar mirë skriptimin e shell, konfigurimet, sigurinë e serverit? Faleminderit