agilidad en shell de linux
TRANSCRIPT
BIENVENIDOS
AGILIDAD EN SHELL DE LINUX
OMAR OLÁN RAMÓNREMIGIO SALVADOR SÁNCHEZ
Currículo
● Licenciado en Informática Administrativa, por la Universidad Juárez Autónoma de Tabasco.
● Certificación Internacional en Diseño Humano con Programación Neurolingüística. CEMEHC (Centro Mexicano de Excelencia Humana Creativa).
● 2011- Taller de Instalación y Configuración de Linux. 8vo. Congreso Nacional y 5to. Congreso Internacional de Informática y Sistemas Computacionales. UJAT.
● 2008- Seminario “Entornos de Escritorio”. Festival Latinoamericano de Instalación de Software Libre 08.
● Desarrollador de Negocios - Radikal Systems, S.A. de C.V.
Expectativas del taller
Conocer comandos útiles del Shell Linux y aplicarlos para
elaborar scripts.
Objetivo general
Ajuste de expectativas del taller
Reglas de operación
Integración grupal
● La shell es un programa que toma los comandos que escribes desde tu teclado y se los da al sistema operativo Linux para que sean ejecutados.
● La shell de uso más común en Linux es bash (Bourne again shell). Es una opción excelente para los usuarios que están empezando a usar la terminal.
INTRODUCCIÓN
● La shell provee una interfaz interativa textual para acceder a los servicios del sistema operativo.
● En un ambiente fácil de usar y permite ejecutar comandos y programas.
INTRODUCCIÓN
● Un Script (o guión) para Bash es un archivo de texto que contiene una sucesión de comandos de shell que pueden ejecutar diversas tareas de acuerdo al contenido del texto del script. De esta forma pueden automatizarse muchas acciones para alguna necesidad particular o para la administración de sistemas.
● #!/bin/bash
INTRODUCCIÓN
● Los scripts soportan varias características de programación como pueden ser: ciclos, variables, arreglos, funciones, etc.
● Redirecciones de salida y entrada, PIPES, expansiones, control de trabajo (jobs).
● Comandos construidos de forma personalizada :)
INTRODUCCIÓN
INICIAMOS…
Acceso al Shell- Ejecutar una terminal en el entorno gráfico: Aplicaciones – Accesorios – Terminal
- Ó Aplicaciones – Sistema – Konsole
Acceso al Shell
- Ó mediante 6 consolas virtuales: (líneas de comando).
- Ctrl + Alt + F1:- Ctrl + Alt + F2:- Ctrl + Alt + F3:- Ctrl + Alt + F4:- Ctrl + Alt + F5:- Ctrl + Alt + F6:
Nociones básicas de línea de comandos
- Las letras mayúsculas y minúsculas se consideran diferentes.
- Si se desconoce el nombre completo de un comando o un archivo se escriben las primeras letras del mismo y se presiona la tecla << tab >>
Nociones básicas de línea de comandos
Con la tecla << ArrowUp >> se tiene acceso al historial de comandos.
- Es posible copiar/pegar con el mouse: Seleccionar el texto a copiar.
- Pegar con el botón medio del ratón (o presionando el botón izquierdo y derecho al mismo tiempo).
Nociones básicas de línea de comandos
- Algunos comandos solamente pueden ejecutarse por el superusuario -root -
- Para convertirse temporalmente en usuario root: comando sudo
Nociones básicas de línea de comandos
- Diferencias entre usuario normal y administrador
Listar archivos
comando ls
Ejemplo: ls ruta
Crear archivos de texto
comando touch
Ejemplo: touch nombre de archivo
Moverse entre carpetas
comando cd
Ejemplo: cd directorio
Copiar archivos
comando cp
Ejemplo: cp archivo/carpeta origen archivo/carpeta destino
Mover archivos
comando mv
Ejemplo: mv archivo/carpeta origen carpeta destino
Renombrar archivos/directorios
comando mv
Ejemplo: mv nombre original nombre nuevo
Borrar archivos
comando rm
Ejemplo: rm nombre de archivo
Crear carpetas
comando mkdir
Ejemplo: mkdir nombre de carpeta
Borrar carpetas
comando rm con argumento
Ejemplo: rm -rf nombre de carpeta
Borrar carpetas
comando rmdir(la carpeta tiene que estar vac´ıa)
Ejemplo: rm nombre de carpeta
Ayuda en línea
comando manPermite visualizar los manuales de ayuda de casi cualquier comando
Ejemplo: man nombre del comando
Control de usuarios
comando whoMuestra los usuarios loggeados en la terminal y la hora
Ejemplo: who
Control de usuarios
comando whoamiMuestra quien soy
Ejemplo: whoami
Control de usuarios
comando whoisLista la información sobre el propietario del dominio especificado.
Ejemplo: whois ujat.mx
Control de usuarios
comando wMuestra el comando queestán ejecutando otros usuarios
Ejemplo: w
Visualizar fecha y hora
comando dateMuestra la fecha y hora actual
Ejemplo: date
Visualizar fecha y hora
comando cal Muestra el calendario en el mes y añoespecificado (opcional)
Ejemplo: cal mes año
Cambiar permisos a archivos
comando chmodPermite cambiar las opciones de escritura/lectura/ejecuciónde un archivo
Ejemplo: chmod núm/letra archivo
Cambiar el propietario y grupo de archivos
comando chownPermite cambiar las opciones de propietario o grupo al que pertenece el archivo
Ejemplo: chown usuario:grupo archivo
Crear usuarios
comando adduser/useraddPermite crear usuarios.
Ejemplo: adduser fulanito
Cambiar password
comando passwdSi no se especifica usuario cambia el password del usuarioque ejecuta el comando
Ejemplo: passwd menganito
TUBERIAS
Nuestroprimer SCRIPTVariables
Comandos del sistema Estructuras condicionales
CiclosIngresando datos
Operadores
--- holaScript.sh ---
#!/bin/bash
clear
echo Holascript
---holaScript.sh ---
NUESTRO PRIMER SCRIPT
$0 : Nombre del programa ó script.
$# : Cantidad de argumentos.
$1..$n : Argumentos según su posiciónen la línea de comandos.
$@ : Lista de Argumentos.
$? : Resultado de la ejecución del ultimo comando.
$$ : PID del shell actual.
VARIABLES
--- variables3.sh ---
echo
echo
echo
echo
echo
"Nombre del
"Número descript: $0"
argumentos: $#"
"Lista de argumentos: $*""PID
"PID
del proceso
del procesoactual: $$"
hijo: $!"
--- vairables3.sh ---
VARIABLES
--- comando.sh ---#!/bin/bash
HOLA="Hola,delaño."
echo $HOLA
hoy es el día $(date +%j)
--- comando.sh ---
COMANDOSDEL SISTEMA
caracteres especiales, la cadena debeestar encerrada entre apostrofes ocomillas
Eluso cadena
decomillas decaracteres
dentro de una permitira que
de
las
cualquier comillassea
variables dentro interpretado
Apostrofes y comillas Cuando se asignan cadenas de
caracteres que contiene espacios o
--- comando.sh ---
#!/bin/bash
HOLA="date +%j"
echo $HOLA
--- comando.sh---
COMANDOS DEL SISTEMA
--- comando.sh ---
#!/bin/bash
HOLA=`date +%j`
echo $HOLA
--- comando.sh---
COMANDOS DEL SISTEMA
--- variables.sh ---
#!/bin/bash var="test de cadenas”
var2=”Valor de
echo $var2la variable es $var”
--- variables.sh ---
COMANDOSDEL SISTEMA
--- variables.sh ---#!/bin/bash
var='test de cadenas'var2='Valor de
echo $var2la variable es $var'
--- variables.sh ---
COMANDOS DEL SISTEMA
● [ s1 = s2 ]: s1 coincide con s2
[ s1 != s2 ]: s1 no coincide con
s2 [ s1
●
● < s2 ]: s1 es alfabéticamente a s2, con
s2 ]: s1con
anterior
[ s1 >
el locale actual
esel
● alfabéticamente locale actualposterior a s2,
●
● [ -z s1 ] : s1 es nulo
OPERADORES
[ -n s1 ]: s1 no es nulo (contiene unoo más caracteres)
(CADENAS DE TEXTO)
--- si2.sh ---
#!/bin/bash
if [ $(whoami) = root ]; thenecho “Hola
ROOT” else
echo
fi“No eres root”
--- si2.sh ---
ESTRUCTURA CONDICIONALES
--- si3.sh ---
#!/bin/bashif [ $USER = root
echo
elif
]; then
“El usuario es root”
[ $(whoami) = BugCon ]; thenecho “El usuarioes BugCon”
else
echo
fi“quien eres”
--- si3.sh ---
ESTRUCTURA CONDICIONALES
--- archivo.sh ---
#!/bin/bash
if [ -f "BUGCON.TXT" ]; then
existeecho el archivo
else
echo archivo no encontrado
fi
--- archivo.sh ---
ESTRUCTURA CONDICIONALES
--- leer.sh ---
#!/bin/bashecho
read
echo
Por favor, introduzca su nombre:
NOMBRE
"¡Hola $NOMBRE!"
------ leer.sh
INGRESANDO DATOS
● + (adición)
- (sustracción)
* (producto)
/ (división)
% (módulo)
●
●
●
●
● ** (exponenciación)
OPERADORES ARITMETICOS
● [ a -lt b ] equivale a ((a < b))
●
●
●
●
●
OPERADORES(RELACIONES ARITMETICAS)
[a -gt b ] equivale a ((a > b))[a -le b ] equivale a ((a
<=b))
[a -ge b ] equivale a ((a >=
b))
[a -eq b ] equivale a ((a ==
b))
[a -ne b ] equivale a ((a !=
b))
●
●
OPERADORES LOGICOS
&& Y lógico (AND)
|| O lógico (OR)
–-d /ruta/archivo: Verdadero si archivoexiste y es un directorio
–-e /ruta/archivo: Verdadero si archivoexiste
–-f /ruta/archivo: Verdadero si archivoexiste y es un archivo común
–-l /ruta/archivo: Verdadero si archivoexiste y es un enlace suave
–-r /ruta/archivo: Verdadero si archivoexiste y puede leerse
OPERADORES(SOBRE ARCHIVOS)
-s /ruta/archivo: Verdadero si archivo existe y tiene tamaño mayor que 0.-w /ruta/archivo : Verdadero si archivo existe y es escribible.-x /ruta/archivo: Verdadero si archivo existe y es ejecutable.Arch1 –ot Archi2: Verdadero si Arch1 es más viejo que Arch2.
● El for es distinto a de
los de otros lenguajesprogramación. Básicamente, le permite
de `palabras'iterar sobre una seriecontenidas dentro de una cadena.
CICLOS
● El for es distinto a de
los de otros lenguajesprogramación. Básicamente, le permite
de `palabras'iterar sobre una seriecontenidas dentro
El while ejecuta
de una cadena.
un● trozo de código si la
es verdadera, y (o se encuentra una
en
expresión de controltermina cuando es falsainterrupción ejecución)
explícita dentro del código
CICLOS
● El for es de
distinto a los de otros lenguajesprogramación. Básicamente, le permite
de “palabras”iterar sobre una seriecontenidas dentro
El while ejecuta
de una cadena.
un● trozo de código si la
es verdadera, y encuentra una
en
expresión de controltermina cuando es falsa (o seinterrupción ejecución).
explícita dentro del código
● El until en que
es casi el
idéntico al while, exceptocódigo se
ejecuta seevalúe
mientras laexpresión de control como falsa.
CICLOS
--- contador.sh ---#!/bin/bash
clear
read -p"Introduce
un numero: " numerofor (( a=0;
doa<=$numero; a++ ))
echo"$a"
done
---
contador.sh---
CICLOS
--- mientras.sh ---#!/bin/bash
CONTADOR=0
while [$CONTADOR
-lt 10 ]; do
echo El contador es $CONTADOR
letCONTADOR=CONTADOR+1
done
--- mientras.sh ---
CICLOS
--- until.sh ---
#!/bin/bash
CONTADOR=20
until [ $CONTADOR
CONTADOR-lt 10 ]; do
$CONTADORecho
letCONTADOR-=1
done
--- until.sh ---
CICLOS
--- caso.sh ---
#!/bin/bashecho
read
case
"Introduce
num
$num in
un numero entre 1 y 5: "
0|6) echo
"NUMERO
*) echo "valor
no esac
--- caso.sh ---
FUERA DE RANGO.";;
reconocido";;
CICLOS
1) echo "El valor de num es 1.";;
2) echo "El valor de num es 2.";;
3) echo "El valor de num es 3.";;
4) echo "El valor de num es 4.";;
5) echo "El valor de num es 5.";;
Script (ejercicio.sh) que haga:
● Una carpeta (BUGCON)
Una serie de archivos● (10 archivos)dentro de lacarpeta BUGCON
Comprima la carpeta de BUGCON●
● PREMIO AL QUE LO REALICE :)
EJERCICIO
● ¡Lean!
RECOMENDACIONES
●¡Lean!
Crond
+● script
RECOMENDACIONES
● ¡Lean!
●Crond
Webmin+ script
+script
●
RECOMENDACIONES
● ¡Lean!
●Crond
Webmin
Script
+ script
+script
●
● con Expect
RECOMENDACIONES