BashSFD

19
Gnu/Bash Omar Andrés Zapata Mesa Centro de Ciencias Instituto Tecnológico de la Computación (c3) Metropolitano

description

Itm

Transcript of BashSFD

Page 1: BashSFD

Gnu/Bash Omar Andrés Zapata Mesa

Centro de Ciencias Instituto Tecnológico

de la Computación (c3) Metropolitano

Page 2: BashSFD

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.

Page 3: BashSFD

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.

Page 4: BashSFD

Estructura básica de Linux

Page 5: BashSFD

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

Page 6: BashSFD

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

Page 7: BashSFD

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.

Page 8: BashSFD

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.

Page 9: BashSFD

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.

Page 10: BashSFD

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

Page 11: BashSFD

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

Page 12: BashSFD

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

Page 13: BashSFD

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

Page 14: BashSFD

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

Page 15: BashSFD

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

Page 16: BashSFD

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.

Page 17: BashSFD

#!/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

Page 18: BashSFD

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.

Page 19: BashSFD

Gracias