agilidad en shell de linux

Post on 12-Apr-2017

430 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

top related