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.
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.: <"$NOMBRE_SISTEMA"> / <"$VERSION_SISTEMA"> "
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 &> /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 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.
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)
Që kur pashë këtë pseudonim vitin e kaluar në Reddit, ai ka qenë i preferuari im:
alias qij = 'sudo $ (histori -p !!)'
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]# «
pse me mire te mos shkruani artikullin tuaj?
KETO JAN THE TUTORIALET Q I M L Pëlqejnë !!!!!!!!!
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.
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.
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
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