Sunteți pe pagina 1din 33

Bash

Omar Andrs Zapata Mesa Grupo de Fenomenologa de Interacciones Fundamentales, (Gfif) ni!ersidad de Antio"uia

Introducci#n
$inu%

es una plataforma "ue se orienta a tra&a'ar en terminal, (a "ue esto permite la automati)aci#n de tareas usando intrpretes de consola tales como &ash, csh, )sh etc** $os intrpretes de consola son una manera mu( eficiente de tra&a'ar, (a "ue no necesitan interfaces para interactuar con el usuario todo el tiempo ( permite de manera remota controlar la ma"uina, +indo,s cuenta con sistemas remoto de administraci#n gr-ficos pero stos re"uieren cone%i#n amplia a la red*

Introducci#n
.ara este curso tra&a'aremos con el intrprete &ash de lnea de comandos o m-s conocida como prompt, (a "ue es el "ue !iene por defecto instalado en nuestros sistemas ( es el mas usado* Bash cuenta con una serie de utileras "ue permiten al usuario hacer mucho m-s f-cil su tra&a'o en la terminal de $inu% e incluso tam&in es tomado en muchos casos, como un lengua'e de programaci#n completo como cual"uier otro lengua'e de programaci#n interpretado*

/omandos B-sicos 0e Bash


$o

primero "ue de&emos sa&er es "ue en $inu% estos interpretes (shells) son diferentes por las filosofas con las "ue fueron desarrolladas, por e'emplo el csh fue desarrollada para "ue su sinta%is se pareciera m-s al lengua'e de programaci#n /, el 1sh "ue fue escrito por 0a!id 2orn de los la&oratorios Bell, fue pensado m-s para sistemas ni% ( tra&a'o administrati!o de ser!idores, mientras "ue &ash ( )sh son terminales de prop#sito general ( no necesitan conocimientos tan especiali)ados*

3l am&iente Bash
3l

am&iente &ash es el pro!isto por el intrprete para la interacci#n por consola, para ello e%isten m4ltiples a(udas ( caractersticas "ue facilitan el tra&a'o* .or e'emplo a&ramos un terminal escri&amos ls5ta&67 este nos permitir- completar comandos &asados es lo actualmente escrito en el prompt* Ahora escri&amos los siguientes comandos*

3l am&iente Bash
echo 8 93: echo 8.A;< echo 8<OM3 echo 89<3$$ echo 8.+0

3stos

por e'emplo son !alores "ue est-n en !aria&les "ue !ienen en el am&iente propio de tra&a'o de &ash, ( son usadas para manipular informaci#n en tiempo de e'ecuci#n por programas*

3l am&iente Bash
.ara

mirar "ue !aria&le tiene declaradas nuestro am&iente usamos el comando e%port .ara crear nuestras propias !aria&les de am&iente se usa el comando e%port asi= e%port >OMB:3?@A:AB@A$O:B e%port :3A$?>AM3ABOmar ZapataB echo 8:3A$?>AM3

3l am&iente Bash
.odemos

personali)ar el am&iente de forma fi'a usando el archi!o de configuraci#n "ue aparece en el home llamada *&ashrc* .odemos especificar las lineas de inicio del prompt modificando la !aria&le .9C=

oma)apaDtu%ito=E8nano

*&ashrc Al final del arch!io escri&imos e%port .9CAFGuHGhHG,HG8F .ara cargar la configuraci#n= source *&ashrc

3l am&iente Bash
$as secuencias "ue se interpretan de forma especial son= \a .roduce un sonido \d Fecha \e /aracter "ue representa inicio de una secuencia de control para su terminal (A9/II II)* \h >om&re de la m-"uina hasta el primer J*J \H >om&re completo de la m-"uina* \n \r >ue!a lnea* \s \v \V >om&re ( !ersi#n del intrprete de comandos* \t \T \@ <ora en di!ersos formatos* \u >om&re del usuario* \w \W 0irectorio de tra&a'o* \$ 3l caracter JKJ si el usuario es el administrador ( J8J en otro caso*

/omandos B-sicos 0e Bash .ara O&tener A(uda


man:

0espliega en la pantalla un manual de usuario para el comando indicado 8man ls para tener una introducci#n al sistema e'ecutemos 8man Ha intro (!er los see also) help solo sir!e para !er informaci#n de comandos propios de &ash no de comandos del sistema operati!o*

/omandos B-sicos 0e Bash .ara O&tener A(uda


info

muestra informaci#n general de comandos* apropose muestra informaci#n relacionada con un comando e'= 8apropos p(thon* --help, opci#n de a(uda para cada comando, "ue fue estandari)ado en $inu% por los programadores7 eso "uiere decir "ue cada comando cuenta con a(uda propia de la siguiente forma e'= 8ls HHhelp

Flu'os ( :edirecciones
$a

informaci#n por lo regular en la linea de comandos se mane'a como un flu'o de datos, para ellos tam&in e%isten en &ash una serie de poderosas herramientas "ue permiten el mane'o f-cil de estos flu'os a tra!s de redirecciones ( pipelines* .or con el comando cat podemos !er el !olcado del contenido de un archi!o en pantalla ( con grep filtrar informaci#n*

Flu'os ( :edirecciones
oma)apaDtu%ito=E8 cat LetcLpass,d M grep oma)apa oma)apaDtu%ito=E8 cat LetcLpass,d M grep oma)apa N usuario*t%t oma)apaDtu%ito=E8 cat LetcLpass,d M grep root NN usuario*t%t oma)apaDtu%ito=E8 cat usuario*t%t oma)apaDtu%ito=E8 cat LetcLpass,d M grep false M less

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


cd

H 9ir!e para cam&iar el directorio H cd E # cd L cp H <ace una copia de un archi!o H cp file?orig file?cop( # cp Hr dir?orig dir?cop( chmod H /am&ia los permisos de un archi!o o directorio H chmod O% file # chmod H% rm P remue!e directorio ( archi!os H rm file # rm Hrf dir

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


ln

P enla)a directorios ( archi!os para representarlos en rutas H ln Hs usuario*t%t u*t%t mkdir P crea directorios H m1dir m(dirL # m1dir Hp ne,dirLdirQ pwd P muestra el directorio en el "ue esto( parado H p,d

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


sed

P cam&ia ( filtra caracteres en flu'os de datos* H sed He JsL=LHHHHHLgJ LetcLpass,d grep P filtra datos en un arhci!o H grep H! root LetcLpass,d gawk o awk P permite selecionar columnas en un archi!o o flu'o H a,1 HFB=B JRprint 8CSJ LetcLpass,d

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


cat

P concatena archi!o ( muestra informaci#n en pantalla tail P toma un numero determinado de lineas de un archi!o o flu'o desde el final H tail Hn Q LetcLpass,d wc P cuenta lineas, pala&ras ( caracteres en un flu'o* H ,c Hl LetcLpass,d

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


mv

P mue!e un archi!o o directorio H m! file file?mo!ed tar H /on este comando se comprimen ( descomprimen archi!os en formato *tar *g) ,&)Q H tar Hc)f usuario*tar*g) usuario*t%t H tar H%)f usuario*tar*g) usuario*t%t head muesta un n4mero determinado de lineas a partir del inicio del archi!o o flu'o H head Hn Q LetcLpass,d

/omandos B-sicos 0e Bash .ara Mane'o de Archi!os ( 0irectorios


file

H 0etermina el tipo de archi!o a tra!s del an-lisis parcial de su contenido H file LusrL&inLma1e cut H H cat LetcLpass,d M head M cut Hd B=B Hf C,T paste H 'unta lineas de archi!os H paste fileC*t%t fileQ*t%t

3'ercicios

sando los comandos anteriores ( o&tiendo la informaci#n de LetcLpass,d=


/ontar cuantos usuarios ha( en el sistema O&tener el shell "ue usa el usuario root /am&iar los = por CQI O&tener los usuarios "ue tengan shell &ash ( cam&iar la &ash por csh* O&tener todos los usuarios "ue no tienen shell &ash ( cam&iarlo por &ash

/omandos B-sicos 0e Bash Mane'o de discos ( espacio


du

H Muestra el espacio utili)ado en disco H du Hcsh dir fdisk H 9e utili)a para particiona unidades H fdis1 Hl (necesita permisos de root) df P muestra el espacio li&re en disco H df Hh fsck H 3%amina el sistema de archi!os H fsc1 Lde!LsdaC (necesita permisos de root) mount P monta dispositi!os en carpetas H mount Lde!LsdaC Lmnt

/omandos B-sicos 0e Bash Bus"ueda de Archi!osL0irectorios


whereis

P &usca &inarios, codigo fuente ( paginas de manual H ,hereis ls locate encuentra archi!os por su nom&re H locate ls !pdated" actuali)a la &ase de datos para el comando locate H updated& (solo funciona como root) find P &usca archi!os en la gerar"uia de un directorio especificado H find LusrL Hname !i

/omandos B-sicos 0e Bash .ara Mane'o de procesos


free

H Muestra la memoria li&re ( utili)ada kill H Mata un proceso seUalando el n4mero de ste ps H Muestra todos los procesos "ue se est-n e'ecutando en el sistema pstree H Muestra todos los procesos "ue se est-n e'ecutando en el sistema, pero en forma de -r&ol* top P muestra las tareas en e'ecuci#n

/omandos B-sicos 0e Bash .ara el Mane'o de suarios


adduser

H /rea una cuenta de usuario chsh H 3ste comando cam&ia la shell de un usuario* groups H Muestra el listado de grupos de usuarios del sistema* id H Muestra la informaci#n de usuario ( grupo de un determinado usuario* logout H 9e sale del sistema deslogueando al usuario, pero metiendo iniciar sesi#n con otro usuario*

/omandos B-sicos 0e Bash .ara el Mane'o de suarios


passwd

H /am&ia la contraseUa de un determinado usuario* su H $e da pri!ilegios de root (administrador) a un usuario* talk H .ermite ha&lar con otros usuarios users H $ista los usuarios conectados al sistema* who H Muestra informaci#n de los usuarios conectados al sistema* last H muestra "uienes han entrado al sistema

/ommandos Basicos 0e Bash !arios


re"oot

H :einicia el sistema* halt H Apaga la ma"uina* shutdown H /ierra el sistema* uname H Muestra informaci#n del sistema* histor# P muestra la historia de comandos e'ecutados* V**

9cripts

n script es un archi!o de te%to con comandos de alg4n intrprete* Wste de&e tener permisos de e'ecuci#n ( una ca&ecera especial llamada hash&and
http=LLen*,i1ipedia*orgL,i1iL9he&ang?XQY ni%XQZ

"ue se compone de los caracteres especiales K[ seguido de la ruta del e'ecuta&le del intrprete "ue !amos a usar, para &ash sera K[L&inL&ash, para p(thon sera K[LusrL&inLp(thon o K[LusrL&inLen! p(thon

9cript en &ash*
/reamos

con un archi!o con el editor "ue eli'amos, en mi caso nano* 8nano script*sh HHHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHH K[L&inL&ash echo \holaF echo \esto( parado en 8(p,d)F HHHHHHHHHHHHHHHHHHHHLLLLLLLLLLLLLHHHHHHHHHHHHHHHHHHHHHHHHHH $e damos permisos de e'ecuci#n chmod O%

9cript en &ash*
8chmod O% script*sh ( lo e'ecutamos *Lscript $os scripts tam&in contienen c#digo "ue uno no "uiere e'ecutar, pero "ue le sir!e a un para sa&er "ue se esta haciendo o depurar, ( estos se llaman comentarios7 e'=
K[L&inL&ash echo \holaF Kcomentario a"ui

Bash
Bash

tam&in cuenta con una serie de estructuras similares a la de cual"uier otro lengua'e interpretado, tales como &ucles, funciones, condicionales etc** "ue permite decir "ue &ash a la !e) tam&in es un lengua'e de programaci#n en si mismo* Bash no se !er- en profundidad en este curso, por"ue no es un lengua'e completo ni pensado para computaci#n cientfica, solo fue pensado para asuntos administrati!os*

Bash
K[L&inL&ash >OMB:3 A \omarF $O/A/IO> A 8(p,d) echo hola 8>OMB:3 estas en 8$O/A/IO> K[L&inL&ash read nom&re if 5 B8nom&reB A BomarB 67 then echo hola omar else echo no te cono)co fi K[L&inL&ash for (( cAC7 c]A^7 cOO )) do echo B+elcome 8c times***B done K[L&inL&ash for i in 8(ls) do echo file 8i done

3'ercicios
<acer

un scipt "ue muestre un resumen del sistema con las siguientes caractersticas=
3l

modelo del procesador 3l tamaUo del cache /u-nta ram tiene /u-ntas particiones montadas tiene ( cu-nto espacio "ueda li&re* /u-ntos procesos se est-n e'ecutando en total ( por cada usuario*

;area
C) _`u es un lengua'e estructuradoa Q) _`u es un algoritmoa I) _`u es programaci#n estructuradaa b) _`u es un lengua'e de ni!el medioa ^) _`u es un lengua'e de alto ni!ela c) _`u es un compilador ( un interprete ( cu-les son sus !enta'as ( des!enta'asa T) _/#mo es la estructura de un programa en /a

S-ar putea să vă placă și