BashSFD

Post on 05-Feb-2016

214 views 0 download

description

Itm

Transcript of BashSFD

Gnu/Bash Omar Andrés Zapata Mesa

Centro de Ciencias Instituto Tecnológico

de la Computación (c3) Metropolitano

Introducción

Linux es una plataforma que se orienta a trabajar en Linux es una plataforma que se orienta a trabajar en terminal, ya que esto permite la automatización de terminal, ya que esto permite la automatización de tareas usando intérpretes de consola tales como tareas usando intérpretes de consola tales como bash, csh, zsh etc..bash, csh, zsh etc..

Los intérpretes de consola son una manera muy Los intérpretes de consola son una manera muy eficiente de trabajar, ya que no necesitan interfaces eficiente de trabajar, ya que no necesitan interfaces para interactuar con el usuario todo el tiempo y para interactuar con el usuario todo el tiempo y permite de manera remota controlar la máquina.permite de manera remota controlar la máquina.

Introducción

Para este taller trabajaremos con el intérprete bash Para este taller trabajaremos con el intérprete bash de línea de comandos o más conocida como prompt, de línea de comandos o más conocida como prompt, ya que es el que viene por defecto instalado en ya que es el que viene por defecto instalado en nuestros sistemas y es el más usado.nuestros sistemas y es el más usado.

Bash cuenta con una serie de utilerías que permiten Bash cuenta con una serie de utilerías que permiten al usuario hacer mucho más fácil su trabajo en la al usuario hacer mucho más fácil su trabajo en la terminal de Linux e incluso también es tomado en terminal de Linux e incluso también es tomado en muchos casos, como un lenguaje de programación muchos casos, como un lenguaje de programación completo como cualquier otro lenguaje de completo como cualquier otro lenguaje de programación interpretado.programación interpretado.

Estructura básica de Linux

El ambiente Bash

El ambiente bash es el provisto por el intérprete para la interacción por consola, para ello existen múltiples ayudas y características que facilitan el trabajo. Por ejemplo abramos un terminal y escribamos ls[tab]; éste nos permitirá completar comandos basados es lo actualmente escrito en el prompt.

Ahora escribamos los siguientes comandos.

echo $USERecho $PATHecho $HOMEecho $SHELLecho $PWD

El ambiente Bash

Estos por ejemplo son valores que están en variables que vienen en el ambiente propio de trabajo de bash, y son usadas para manipular información en tiempo

de ejecución por programas. Para mirar que variable tiene declaradas nuestro

ambiente usamos el comando export. Para crear nuestras propias variables de ambiente

se usa el comando export asi:

export NOMBRE_VAR="VALOR"export REAL_NAME="Omar Zapata"echo $REAL_NAME

El ambiente Bash

Podemos personalizar el ambiente de forma fija usando el archivo de configuración que aparece en el home llamada .bashrc.

Podemos especificar las lineas de inicio del prompt modificando la variable PS1:

omazapa@tuxito:~$nano .bashrc

Al final del archvio escribimos

export PS1=”\u-\h-\w-\$”

Para cargar la configuración: source .bashrc Las secuencias que se interpretan de forma especial

son: \u Nombre del usuario. \h Nombre de la máquina. \w \W Directorio de trabajo.

Comandos de ayuda en Bash

man: Despliega en la pantalla un manual de usuario para el comando indicado

$man ls

para tener una introducción al sistema

ejecutemos

$man -a intro (ver los see also) help solo sirve para ver información de

comandos propios de bash no de

comandos del sistema operativo. info muestra información general de comandos.

Comandos de ayuda en Bash

apropose muestra información relacionada con un comando ej: $apropos python.

--help, opción de ayuda para cada comando, que fue estandarizado en Linux por los programadores; eso quiere decir que cada comando cuenta con ayuda propia de la siguiente forma ej: $ls --help

whatis, da una breve descripción de los comandos.

Comandos Básicos De BashPara Manejo de Archivos y Directorios

ls Lista los archivos y directorios sort Ordena alfabéticamente una lista de archivos cd Cambia de directorio pwd Muestra la ruta al directorio actual tree Muestra la estructura de directorios y

archivos en forma gráfica mkdir Crea un directorio rmdir Borra directorios(los directorios deben estar

vacíos). rm -r Borra directorios (los directorios pueden no

estar vacíos) cp Copia archivos

Comandos Básicos De BashPara Manejo de Archivos y Directorios

mv Mueve o renombra archivos y directorios cat Muestra el contenido de uno o varios

archivos more Ve el contenido de los archivos página a

página less Ve el contenido de los archivos split Dividir archivos find Busca archivos locate Localiza archivos según una lista

generada whereis Muestra la ubicación de un archivo file Muestra el tipo de archivo

Comandos Básicos De BashPara Manejo de Archivos y Directorios

whatis Muestra descripción del archivo wc Muestra el total de líneas, palabras o

caracteres en un archivo grep Busca un texto en un archivos head Muestra el inicio de un archivo tail Muestra el final de un archivo chmod Cambia permisos de archivos y

directorios nano Abre el editor de texto nano sed Cambia una cadena de caracteres por

otra

Comandos Básicos De BashPara Manejo de Procesos

free Muestra la memoria libre y utilizada kill Mata un proceso señalando el número de éste killall Mata todos los procesos dado el nombre ps Muestra todos los procesos que se están

ejecutando en el sistema pstree Muestra todos los procesos que se están

ejecutando en el sistema, pero en forma de árbol. top muestra las tareas en ejecución

Scripts

Un script es un archivo de texto con comandos de algún intérprete. Éste debe tener permisos de ejecución y una cabecera especial llamada hashband http://en.wikipedia.org/wiki/Shebang_%28Unix%29 que se compone de los caracteres especiales #! seguido de la ruta del ejecutable del intérprete que vamos a usar,

para bash sería #!/bin/bash, para python sería

#!/usr/bin/python o #!/usr/bin/env python

Script en bash.

Creamos con un archivo con el editor que elijamos, en mi caso nano.

$nano script.sh

Le damos permisos de ejecución chmod +x $chmod +x script.sh Lo ejecutamos ./script.sh o bash script.sh

#!/bin/bashecho “hola”

#comentario aquíecho “estoy parado en $(pwd)”

Bash como lenguaje

Bash también cuenta con una serie de estructuras similares a la de cualquier otro lenguaje interpretado, tales como bucles, funciones, condicionales etc.. que permite decir que bash a la vez también es un lenguaje de programación en si mismo.

Fue pensado para asuntos administrativos, se usa generalmente en scripts y no es orientado a objetos.

#!/bin/bashNOMBRE = “omar”LOCACION = $(pwd)echo hola $NOMBRE estas en $LOCACION

#!/bin/bashread nombreif [ "$nombre" = "omar" ]; then echo hola omarelse echo no te conozcofi

#!/bin/bashfor (( c=1; c<=5; c++ ))doecho "Welcome $c times..."done

#!/bin/bashfor i in $(ls)doecho file $idone

#!/bin/bashfunction borrarPantalla { clear }borrarPantalla

#!/bin/bashfunction crearDirectorio { mkdir $1 }CrearDirectorio mydir

Ejercicios

Hacer un script que me diga cuántos usuarios hay.

Hacer un script que me muestre cuántos procesadores tiene el computador

Hacer un script que me llame otro script, donde tengo un conjunto de variables declaradas e imprimirlas.

Gracias