Nothing Special   »   [go: up one dir, main page]

Shell Básico

Descargar como odp, pdf o txt
Descargar como odp, pdf o txt
Está en la página 1de 30

Introduccin a Shell

Arquitectura de capas

Shell: Intrprete de rdenes o intrprete de comandos


es el programa informtico que provee una interfaz de
usuario para acceder a los servicios del sistema
operativo.
TIPOS DE INTRPRETES DE COMANDOS

De lneas texto (CLI, Command-Line Interface,


interfaz de lnea de comandos),

Grficos (GUI, Graphical User Interface, interfaz


grfica de usuario),

De lenguaje natural (NUI, Natural User Interface,


interfaz natural de usuario).
Shells CLI
Bash Zsh
Smbolo del
Bourne Shell
Korn Shell
sistema (CMD)
Indicador del sistema

Usuario@equipo:/directorio/actual$

"$" especifica un usuario normal

"#" especifica el administrador, llamado


"root"
Ordenes

Todas las rdenes de UNIX/Linux son programas


que estn almacenados en el sistema de
ficheros. Su sintaxis es la siguiente:
orden [-opciones] [argumentos]

Todos los elementos encerrados entre corchetes son


opcionales. Esto se cumple en la mayora de manuales
Comandos bsicos

pwd Muestra el directorio actual


ls [-opciones] [directorio] Lista el
contenido de un directorio.
ls -a muestra todos los archivos y directorios, incluso los ocultos (los que comienzan con un punto).
ls -l muestra un listado en el formato largo, con informacin de permisos (que ya explicaremos ms adelante),
nmero de enlaces duros asociados al archivo, usuario, grupo, tamao en bytes y fecha de ltima modificacin
adems del nombre.
ls -lh muestra la misma informacin que con la opcin -l pero el tamao del fichero se muestra en unidades ms
entendibles (K, M, G...).
ls -r muestra el contenido ordenado de forma inversa.
ls -R muestra la estructura de directorios que cuelga del directorio actual o del que le pasemos como argumento.
Sistema de archivos.
Sistema de directorios.
Comando cd y tipos de rutas

cd cambia del directorio actual a


cualquier directorio especificado.
Rutas absolutas. Se forman empezando en el directorio raz y acabando en el
punto al que queremos hacer referencia. Por ejemplo, si nuestro usuario se llama
pepito y queremos hacer referencia a su directorio personal, la ruta absoluta
sera /home/pepito.
Rutas relativas. Se forman usando los directorios especiales . y .. y empiezan
siempre en el directorio actual.
Directorio actual (.): es un directorio especial que hace referencia al directorio en el que estamos. Si referenciamos al
directorio . nos estaremos refiriendo al directorio actual.

Directorio padre (..): es un directorio especial que hace referencia al directorio padre del directorio en el que estamos. Si
referenciamos al directorio .. nos estaremos refiriendo al directorio padre del actual. El nico directorio que no tiene
directorio padre es el directorio raz /.
Mas comandos...

date Muestra la fecha y hora.


mkdir Crea directorios
file ruta_del_fichero Muestra el tipo de fichero.
cp Rorigen Rdestino Copia ficheros.
mv Rorigen Rdestino Mueve ficheros.
rm ruta Elimina ficheros.
rmdir ruta Elimina directorios.
touch Crea un fichero en blanco.
echo Regresa a la salida estndar el argumento
ECHO
Miscelanea
Y mas comandos

cat filename Saca por pantalla el contenido


del fichero filename.
more file Visualizacin de archivos pantalla
a pantalla.
find [ruta] [expresin_de_bsqueda]
[accin] Busca archivos, ejemplo:find /
-name reporte
grep Busca un patrn dentro de un archivo
chmod [modificadores] permisos archivo
Permisos
Existen tres permisos independientes, llamados permisos bsicos, que pueden ser permitidos (estado 1) o
denegados (estado 0) a un fichero y/o directorio

r - lectura

w - escritura

x ejecucin

Las clases de usuarios a los cuales se les puede asignar los permisos bsicos anteriormente mencionados
son:

u dueo: dueo del fichero o directorio

g grupo: grupo al que pertenece el fichero

o otros: todos los dems usuarios que no son el dueo ni del grupo

chmod 635 file.txt # Permite lectura y escritura al dueo,


# escritura y ejecucin al grupo,
# y lectura y ejecucin al resto
BASH es un lenguaje de programacin

Se puede hacer uso de variables:

$ MENSAJE="Hola Mundo"
$ echo $MENSAJE
Podemos crear cdigo fuente (scripts) en bash

#!/bin/bash

MENSAJE="\"Hola Mundo ...\""


echo "El valor de la variable \$MENSAJE es
$MENSAJE"
Podemos usar variables numricas

A=2
B=5
suma=$[$A+$B]
multiplica=$[$A*$B]
divide=$[$A/$B]
resta=$[$A-$B]
echo "2 + 5 = $suma"
echo "2 * 5 = $multiplica"
echo "2 / 5 = $divide"
echo "2 - 5 = $resta"
Para simplificar el uso de variables numricas se
puede usar el comando let

A=2
B=5
let suma=A+B
let multiplica=A*B
let divide=A/B
let resta=A-B
echo "2 + 5 = $suma"
echo "2 * 5 = $multiplica"
echo "2 / 5 = $divide"
echo "2 - 5 = $resta"
VARIABLES PREDEFINIDAS

$$ El numero identificador del proceso del shell.


$? Resultado de la ejecucin del comando
anterior.
$0 Nombre del script que se esta ejecutando
$1-$9 Primer a noveno argumento con los que
se invoca.
$* Todos los argumentos como nica palabra
separador
$# Numero de argumentos recibidos.
Ejemplo de uso de variables predefinidas

#!/bin/bash
# muestra_param.sh

echo "El 1er parmetro es: $1"


echo "El 3er parmetro es: $3"
echo "Todos los argumentos son: $*"
echo "El nombre del script es: $0"
echo "Numero de argumentos: $#"
Comando test

Nos permite realizar comparaciones:

-lt: Menor que


-eq: Igual que Ejemplo:
-gt: Mayor que
-le: Menor o igual que
-ge: Mayor o igual que test 3 -lt 5
-ne: No coinciden echo $?
-a
Operador lgico and
exp1 -a exp2 .
-o
Operador lgico or
exp1 -o exp2 .
Podemos leer de la entrada estndar

read A
echo $A
Podemos usar condicionales

#!/bin/bash
#Test IF

echo ' Adivina el valor numerico de la variable'


read A

if [ $A = 1 ];
then
echo 'Acertaste'
exit 0
fi

echo 'No acertaste'


exit
O usar un selector de casos

read x
case $x in
1)
echo "uno"
;;
2)
echo "dos"
;;
*)
echo "no se qu numero es"
;;
esac
Ciclos

Num=10
for (( i=0;i<=Num;i++ ))
do
echo El numero es $i
done
Mas ciclos

while [ "condicin lgica" ]


do
accin 1
accin 2
accin n
done
Funciones

#!/bin/bash
function limpiarPantalla {
clear
}
function listarETC {
ls /etc
}
function crearDirectorio
{
mkdir directorio
}
read opcion
case $opcion in
b|B)
limpiarPantalla
;;
l|L)
listarETC
;;
esac
Factorial

#!/bin/bash

factorial()
{
if [ $1 -le 1 ]
then
return 1
else
factorial $[$1-1]
return $[$1*$?]
fi
}
factorial 5
echo "factorial 5 = $?"
Fibonacci
#!/bin/bash
# SCRIPT: fibonacci.sh
# USO: fibo_iterative.sh [Number]
if [ $# -eq 1 ]
then
Num=$1
else
echo -n "Cuantos valores de la serie desear desplegar? :"
read Num
fi
f1=0
f2=1
echo "La serie de Fibonacci hasta el numero $Num es : "
for (( i=0;i<=Num;i++ ))
do
echo -n "$f1 "
fn=$((f1+f2))
f1=$f2
f2=$fn
done
echo

También podría gustarte