agilidad en shell de linux

73
BIENVENIDOS

Upload: remigio-salvador-sanchez

Post on 12-Apr-2017

430 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Agilidad en shell de linux

BIENVENIDOS

Page 2: Agilidad en shell de linux

AGILIDAD EN SHELL DE LINUX

OMAR OLÁN RAMÓNREMIGIO SALVADOR SÁNCHEZ

Page 3: Agilidad en shell de linux

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.

Page 4: Agilidad en shell de linux

Expectativas del taller

Page 5: Agilidad en shell de linux

Conocer comandos útiles del Shell Linux y aplicarlos para

elaborar scripts.

Objetivo general

Page 6: Agilidad en shell de linux

Ajuste de expectativas del taller

Page 7: Agilidad en shell de linux

Reglas de operación

Page 8: Agilidad en shell de linux

Integración grupal

Page 9: Agilidad en shell de linux

● 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

Page 10: Agilidad en shell de linux

● 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

Page 11: Agilidad en shell de linux

● 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

Page 12: Agilidad en shell de linux

● 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

Page 13: Agilidad en shell de linux

INICIAMOS…

Page 14: Agilidad en shell de linux

Acceso al Shell- Ejecutar una terminal en el entorno gráfico: Aplicaciones – Accesorios – Terminal

- Ó Aplicaciones – Sistema – Konsole

Page 15: Agilidad en shell de linux

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:

Page 16: Agilidad en shell de linux

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 >>

Page 17: Agilidad en shell de linux

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).

Page 18: Agilidad en shell de linux

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

Page 19: Agilidad en shell de linux

Nociones básicas de línea de comandos

- Diferencias entre usuario normal y administrador

Page 20: Agilidad en shell de linux

Listar archivos

comando ls

Ejemplo: ls ruta

Page 21: Agilidad en shell de linux

Crear archivos de texto

comando touch

Ejemplo: touch nombre de archivo

Page 22: Agilidad en shell de linux

Moverse entre carpetas

comando cd

Ejemplo: cd directorio

Page 23: Agilidad en shell de linux

Copiar archivos

comando cp

Ejemplo: cp archivo/carpeta origen archivo/carpeta destino

Page 24: Agilidad en shell de linux

Mover archivos

comando mv

Ejemplo: mv archivo/carpeta origen carpeta destino

Page 25: Agilidad en shell de linux

Renombrar archivos/directorios

comando mv

Ejemplo: mv nombre original nombre nuevo

Page 26: Agilidad en shell de linux

Borrar archivos

comando rm

Ejemplo: rm nombre de archivo

Page 27: Agilidad en shell de linux

Crear carpetas

comando mkdir

Ejemplo: mkdir nombre de carpeta

Page 28: Agilidad en shell de linux

Borrar carpetas

comando rm con argumento

Ejemplo: rm -rf nombre de carpeta

Page 29: Agilidad en shell de linux

Borrar carpetas

comando rmdir(la carpeta tiene que estar vac´ıa)

Ejemplo: rm nombre de carpeta

Page 30: Agilidad en shell de linux

Ayuda en línea

comando manPermite visualizar los manuales de ayuda de casi cualquier comando

Ejemplo: man nombre del comando

Page 31: Agilidad en shell de linux

Control de usuarios

comando whoMuestra los usuarios loggeados en la terminal y la hora

Ejemplo: who

Page 32: Agilidad en shell de linux

Control de usuarios

comando whoamiMuestra quien soy

Ejemplo: whoami

Page 33: Agilidad en shell de linux

Control de usuarios

comando whoisLista la información sobre el propietario del dominio especificado.

Ejemplo: whois ujat.mx

Page 34: Agilidad en shell de linux

Control de usuarios

comando wMuestra el comando queestán ejecutando otros usuarios

Ejemplo: w

Page 35: Agilidad en shell de linux

Visualizar fecha y hora

comando dateMuestra la fecha y hora actual

Ejemplo: date

Page 36: Agilidad en shell de linux

Visualizar fecha y hora

comando cal Muestra el calendario en el mes y añoespecificado (opcional)

Ejemplo: cal mes año

Page 37: Agilidad en shell de linux

Cambiar permisos a archivos

comando chmodPermite cambiar las opciones de escritura/lectura/ejecuciónde un archivo

Ejemplo: chmod núm/letra archivo

Page 38: Agilidad en shell de linux

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

Page 39: Agilidad en shell de linux

Crear usuarios

comando adduser/useraddPermite crear usuarios.

Ejemplo: adduser fulanito

Page 40: Agilidad en shell de linux

Cambiar password

comando passwdSi no se especifica usuario cambia el password del usuarioque ejecuta el comando

Ejemplo: passwd menganito

Page 41: Agilidad en shell de linux

TUBERIAS

Page 42: Agilidad en shell de linux

Nuestroprimer SCRIPTVariables

Comandos del sistema Estructuras condicionales

CiclosIngresando datos

Operadores

Page 43: Agilidad en shell de linux

--- holaScript.sh ---

#!/bin/bash

clear

echo Holascript

---holaScript.sh ---

NUESTRO PRIMER SCRIPT

Page 44: Agilidad en shell de linux

$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

Page 45: Agilidad en shell de linux

--- 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

Page 46: Agilidad en shell de linux

--- comando.sh ---#!/bin/bash

HOLA="Hola,delaño."

echo $HOLA

hoy es el día $(date +%j)

--- comando.sh ---

COMANDOSDEL SISTEMA

Page 47: Agilidad en shell de linux

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

Page 48: Agilidad en shell de linux

--- comando.sh ---

#!/bin/bash

HOLA="date +%j"

echo $HOLA

--- comando.sh---

COMANDOS DEL SISTEMA

Page 49: Agilidad en shell de linux

--- comando.sh ---

#!/bin/bash

HOLA=`date +%j`

echo $HOLA

--- comando.sh---

COMANDOS DEL SISTEMA

Page 50: Agilidad en shell de linux

--- variables.sh ---

#!/bin/bash var="test de cadenas”

var2=”Valor de

echo $var2la variable es $var”

--- variables.sh ---

COMANDOSDEL SISTEMA

Page 51: Agilidad en shell de linux

--- variables.sh ---#!/bin/bash

var='test de cadenas'var2='Valor de

echo $var2la variable es $var'

--- variables.sh ---

COMANDOS DEL SISTEMA

Page 52: Agilidad en shell de linux

● [ 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)

Page 53: Agilidad en shell de linux

--- si2.sh ---

#!/bin/bash

if [ $(whoami) = root ]; thenecho “Hola

ROOT” else

echo

fi“No eres root”

--- si2.sh ---

ESTRUCTURA CONDICIONALES

Page 54: Agilidad en shell de linux

--- 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

Page 55: Agilidad en shell de linux

--- archivo.sh ---

#!/bin/bash

if [ -f "BUGCON.TXT" ]; then

existeecho el archivo

else

echo archivo no encontrado

fi

--- archivo.sh ---

ESTRUCTURA CONDICIONALES

Page 56: Agilidad en shell de linux

--- leer.sh ---

#!/bin/bashecho

read

echo

Por favor, introduzca su nombre:

NOMBRE

"¡Hola $NOMBRE!"

------ leer.sh

INGRESANDO DATOS

Page 57: Agilidad en shell de linux

● + (adición)

- (sustracción)

* (producto)

/ (división)

% (módulo)

● ** (exponenciación)

OPERADORES ARITMETICOS

Page 58: Agilidad en shell de linux

● [ 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))

Page 59: Agilidad en shell de linux

OPERADORES LOGICOS

&& Y lógico (AND)

|| O lógico (OR)

Page 60: Agilidad en shell de linux

–-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)

Page 61: Agilidad en shell de linux

-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.

Page 62: Agilidad en shell de linux

● 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

Page 63: Agilidad en shell de linux

● 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

Page 64: Agilidad en shell de linux

● 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

Page 65: Agilidad en shell de linux

--- contador.sh ---#!/bin/bash

clear

read -p"Introduce

un numero: " numerofor (( a=0;

doa<=$numero; a++ ))

echo"$a"

done

---

contador.sh---

CICLOS

Page 66: Agilidad en shell de linux

--- mientras.sh ---#!/bin/bash

CONTADOR=0

while [$CONTADOR

-lt 10 ]; do

echo El contador es $CONTADOR

letCONTADOR=CONTADOR+1

done

--- mientras.sh ---

CICLOS

Page 67: Agilidad en shell de linux

--- until.sh ---

#!/bin/bash

CONTADOR=20

until [ $CONTADOR

CONTADOR-lt 10 ]; do

$CONTADORecho

letCONTADOR-=1

done

--- until.sh ---

CICLOS

Page 68: Agilidad en shell de linux

--- 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.";;

Page 69: Agilidad en shell de linux

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

Page 70: Agilidad en shell de linux

● ¡Lean!

RECOMENDACIONES

Page 71: Agilidad en shell de linux

●¡Lean!

Crond

+● script

RECOMENDACIONES

Page 72: Agilidad en shell de linux

● ¡Lean!

●Crond

Webmin+ script

+script

RECOMENDACIONES

Page 73: Agilidad en shell de linux

● ¡Lean!

●Crond

Webmin

Script

+ script

+script

● con Expect

RECOMENDACIONES