El Shell Scripting, Es refereix a la execució d'ordres complexes sobre el Terminal (Consola) de GNU / Linux, és molt útil per automatitzar activitats rutinàries i importants dins del nostre Sistema Operatiu GNU / Linux, el que permet optimitzar els nostres Recursos i Temps.
Per tant, el seu ús des del terminal ens permet executar ordres de comandament complexes manualment o automàticament mitjançant scripts o com rutines programades dins d'arxius de càrrega automàtica o tasques programades dins el Sistema Operatiu GNU / Linux. I per a un Usuari Mitjà, Avançat o SysAdmin el programar (automatitzar) tasques, alertes i / o avisos sobre un Host (PC / Servidor) per estalviar Hores / Labor d'execució manual o presencial, és una cosa bàsica i essencial per al bon desenvolupament de la seva tasca com a professional d'alt nivell.
A continuació, mostrarem com un dada (valor / paràmetre) prèviament emmagatzemat en una variable mitjançant una ordre Bash shell o compatible, pot ser mostrat en el terminal del seu Sistema Operatiu GNU / Linux, d'una manera pràctica i senzilla. A més de tunejar el prompt de l'Terminal.
Primer Pas: Editeu el .bashrc del seu usuari
Amb l'editor de la seva preferència (vaig veure, nano, etc.) editi l' arxiu .bashrc del seu usuari que ha d'estar localitzat dins de l'home d'ell mateix, és a dir, a per exemple: «/ Home / mi_usuario».
Inseriu el contingut de cadascuna de les línies següent i totes aquells altres addicionals que vostè cregui convenient mostrar a l'usuari quan executi un terminal d'usuari:
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\]# "
`
Segon pas: Editeu el .bashrc de l'root
Novament amb l'editor ja usat editi l' arxiu .bashrc del superusuari root que ha d'estar localitzat dins de la ruta / root del mateix.
Inseriu el contingut de cadascuna de les línies següent i totes aquells altres addicionals que vostè cregui convenient mostrar a l'usuari quan executi un terminal d'usuari:
########################### 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\]$ "
Tercer Pas: Editeu el .bashrc de l'root
Tancament sessió i el terminal. Torneu ha iniciar-lo i experimenti els canvis. Li hauria de quedar semblant a com es mostra a continuació, en les imatges següents:
Quart Pas (opcional): tunejar Alias
Recordeu que l'ús d'àlies dins de l' .bashrc pot estalviar també molt de temps d'escriptura. Descomenteu les que vénen per defecte dins el .bashrc, com ara:
alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
I afegiu les que consideri necessari, per ser ordres d'ús freqüent, com ara:
alias cc='clear'
És important, conèixer més de forma autodidacta sobre variables, àlies, el .bashrc i el llenguatge bash shell per a un nivell més avançat de l'terminal. Això mateix es pot aconseguir quan s'inicia sessions remotes via ssh, la qual cosa podem veure més endavant en altres publicacions futures.
Espero que aquests petits "Tips" els facilitin realitzar optimitzacions bàsiques però útils, que en general només estan reservades per a persones expertes en Tecnologia, Informàtica, Programari Lliure i GNU / Linux.
RECORDATORI: Si alguna línia de comanda no se li executa o mostra el valor correcte, assegureu-vos de provar manualment cada secció de l'ordre de comanda per intentar ajustar els valors o sintaxi d'algunes variables.
Els àlies és del millor. No em sembla malament alguns que inclouen per defecte en bashrc: la (ls -a) i ll (ls -l). A l'últim li afegeixo el paràmetre -h.
Altres àlies pràctics:
s = 'sudo'
CD1 = 'cd ..'
cd2 = 'cd ../ ..'
RMD = 'rm -r' (l'utilitzo per remoure directoris amb arxius)
apagar = 'sudo shutdown -h now'
de l'= 'trash-put' (mou fitxers a la paperera, comanda de el paquet trash-cli)
Des que vaig veure aquest àlies l'any passat a Reddit a estat el meu favorit:
àlies fuck = 'sudo $ (history -p !!)'
Aquesta molt bo l'article i l'aparença que li dóna a la consola. Alguns aportacions:
- En Ubuntu els àlies es pot posar en un arxiu a part (.bash_aliases) a la resta de les distribucions no però ho fa afegint les següents línies a .bashrc:
if [-f ~ / .bash_aliases]; then
. ~ / .Bash_aliases
fi
Això permet tenir els àlies mes ordenats i per als desmemoriats com jo poden afegir aquest àlies que mostra el fitxer llistant els àlies:
àlies lsalias = 'more ~ / .bash_aliases'
- També tinc un arxiu de text d'ordres d'ús no freqüent (que no sòl recordar) anomenat comandos_utiles.txt i que llest amb el següent àlies: àlies cutil = 'more ~ / comandos_utiles.txt'
- Mas àlies que ús:
àlies cdu = 'cd ~'
àlies lof = 'ls -lSr | more' # Mostra els arxius en detall ordenats per mida
àlies lod = 'du -sk * | sort -rn '# Mostra els directoris ordenats per mida
àlies deo = 'du -sh' # Estima l'espai ocupat pel dir indicat
àlies psa = 'ps -eafw | more '# Mostra tots els processos amb more
àlies psg = 'ps -eafw | grep '# Mostra el procés indicat
- Per últim pas una alternativa per a usuaris que vaig fer:
NOMBRE_SISTEMA = $ (cat / etc / us-release | grep NAME | grep -v «VERSION» | set -n '1p' | cut -F2 -d \ »)
VERSION_SISTEMA = $ (cat / etc / us-release | grep VERSION = | set -n '1p' | set 's / VERSION = //' | set 's / »// g')
FABRICANTE_CPU = $ (grep «vendor_id» / proc / cpuinfo | set q | awk '{print $ 3}')
MODELO_CPU = $ (grep «model name» / proc / cpuinfo | set q | cut -d «:» -f 2 | awk '{print $ 0}')
NUM_CPU = $ (grep «processor» / proc / cpuinfo | sort -r | set q | awk '{print $ 3}' | trobo
expr $NUM_CPU + 1
)NUCLEO_CPU = $ (grep «cpu cores» / proc / cpuinfo | set q | awk '{print $ 4}')
CACHE_CPU = $ (grep «memòria cau size» / proc / cpuinfo | set q | cut -d «:» -f 2 | awk '{print $ 0}')
DATA_USUARIO = $ (du -sh ~ | sort -r | awk '{print $ 1}')
clear
printf% 130S | tr »» «=»
fet «»
trobo «DATA:«
date +%c --date='+1 year'
trobo «KERNEL:«
uname -o
»<«uname -r
«> <«uname -m
«>»trobo «DISTRIBUCIÓ:« $ NOMBRE_SISTEMA »« $ VERSION_SISTEMA »»
trobo «CPU:« $ MODELO_CPU »,« $ NUCLEO_CPU »Nuclis,« $ CACHE_CPU »Cache»
trobo «ESPAI USAT:« $ DATA_USUARIO
printf% 130S | tr »» «=»
fet «»
############################
trobo «COMANDOS ÚTILS:»
trobo »- Instal·lar RPM en sistema de paquets DEB: alien -c -i paquet.rpm»
trobo »- Canviar l'usuari i grup d'arxius en forma recursiva: chown -HR usuari: grup [arxiu o dir]»
trobo »- Copiar mantenint els permisos: cp -ax origen destí»
trobo »- Mostra repositoris actius: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
trobo »- Afegir un repositori: apt-add-repository ppa: repositori»
trobo »- PER VEURE MÉS COMANDES cutil»
trobo »- PER MOSTRAR ELS ÀLIES lsalias»
printf% 130S | tr »» «=»
fet «»
fet «»
# PS1 = »[\ i [33; 1m] ┌─ ([\ i [34; 1m] \ o @ \ h [\ i [37; 1m]) * * * * \ d - \ t * * * * {[\ i [31; 1m] \ w [\ i [33; 1m]} \ n└──┤ [\ i [32m] # »
PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «
perquè millor no escrius el teu propi article?
AQUESTS SÓN ELS TUTORIALS QUE M'AGRADEN !!!!!!!!!
Bé, m'alegro molt que els hagi agradat i servit!
Demà espero publicar un altre article! Pendents.
Salutacions i gratitud infinita per compartir aquesta informació.
No tinc molt de conocimeinto sobre l'administració de l'GNU / Linux (només sóc un empíric i curiós usuari sense formació acadèmica), però recordo haver llegit en alguna web sobre problemes de seguretat amb escalada de privilegis; alguns comandaments i canonades al scrip .bashrc, em sembla podrien facilitar la feina d'un hacker o cracker.
Respectuosament i molt agraït.
Amb Shell Scripting optimitzar el terminal és senzill, mira fins on es pot arribar fent un bon Shell Scripting.
Screencast de Test de l'LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARI 8.0.0)
(Lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)
Veure Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY
Gran tutorial! Algun llibre que recomanis de linux per aprendre bé shell scripting, configuracions, seguretat de servers? gràcies