Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Explique Brevemente Cómo Se Organiza El Sistema de Ficheros en Ubuntu
Explique Brevemente Cómo Se Organiza El Sistema de Ficheros en Ubuntu
UPONIC
FACULTA DE INFORMATICA
Explique brevemente cmo se organiza el sistema de ficheros en Ubuntu Qu diferencia hay con
respecto a lo que usted conoce de organizacin de ficheros en Windows?
Estos ficheros estn organizados en lo que se conoce como un Sistema de ficheros. Aunque
GNU/Linux es capaz de trabajar con distintos tipos (incluyendo FAT y NTFS) sus sistemas de ficheros
nativos son ext2, ext3 o ext4 (Ubuntu se instala sobre ext3).
Si desde Nautilus pulsamos en el panel lateral el acceso al sistema de archivos veremos el rbol
completo de directorios. En la barra de ttulo de la ventana veremos el smbolo / indicando que
estamos en la raz del rbol. En GNU/Linux esta es la nica raz, no existen letras de unidad para
diferentes dispositivos como s ocurre en otros sistemas, todo (CD-ROM, disquete, memoria USB,
etc.) cuelga de aqu.
Esta estructura se encuentra fuertemente jerarquizada para permitir una mayor familiaridad con el
sistema para los usuarios, pero sobre todo, para que los programadores puedan ubicar los ficheros de
las aplicaciones sin preocuparse de la distribucin en la que funcionar finalmente su programa.
Trabajando
con
el
Sistema
de
Archivos
en
Linux
En Windows los sistemas de archivos son representados por letras. Por ejemplo C: es el disco
duro, X: puede representar una unidad de red, E: puede representar la lectora de DVD y F: un disco
porttil USB. En Linux todos los discos estn incluidos dentro de la jerarqua del sistema de archivos.
De hecho una particin como /usr (donde se guardan los comandos ms usados de Linux) puede
estar en un disco y el /home (donde se guardan los archivos de usuario) en otro disco.
Se usa la barra diagonal (/) en vez de la barra invertida (\) para separar nombres de directorios
en Linux. De esta manera, C:\home\juan de Windows, sera un /home/juan en un sistema Linux.
Los nombres de archivo en Windows tienen sufijos o extensiones, tales como .txt, .exe, .doc.
Estos no son usados y no tienen significado en Linux. Sin embargo, pueden ser usados para
identificar cierto tipo de archivos.
Cada archivo y carpeta en un sistema de archivos en Linux tiene permisos de usuario y grupo
asociados al mismo. La seguridad varia un poco en este sentido con Windows. Debido a que
Windows comenz como un sistema mono usuario. Los permisos de archivo no fue construido en
estos sistemas. Desarrollos posteriores agregar funcionalidades como atributos de archivo o
carpetas para manejar esta carencia.
Sintaxis:
Chmod {a,u,g,o,} {+,-} {r,w,x} nombre del archivo.
El comando chmod tambin acepta otros valores para cambiar los permisos. Es probable que hayas
visto algo como:
Sudo chmod 751[nombre del archivo]
Qu papel juegan los repositorios en Ubuntu?
Los repositorios cumplen un rol muy importante ayudan a mantener ms eficientemente nuestra
instalacin que estn disponibles para ser instalado a travs de internet. Esto hace que es muy fcil
instalar nuevos programas muy seguros, ya que cada programa que instalas esta testeado a fondo y
creado especficamente para Ubuntu.
Qu es un paquete, y que extensin tienen?
En dependientes de la distribucin en la que se estn usando; son usados comnmente para la
compresin de aplicaciones en diferentes formatos para distintos medios de instalacin. Estos son un
conjunto de ficheros que contienen instrucciones para la reconstruccin de la aplicacin dentro del
sistema nuevo, dentro de estos, podemos encontrar, Paquetes Binarios y Paquetes de cdigo Fuente.
Los Paquetes Binario, contienen, como se menciona, la informacin necesaria para reconstruir una
aplicacin en un sistema nuevo, sin necesidad de encontrarse en la misma computadora; los ms
comunes son:
carcter
Exixten
especial $ precediendo
dos
al
tipos
nombre
de
de
la
propio
Bash
variable.
variables:
son
elaboradas
por
defecto
por
el
son:
$1....$n -> Variables que almacenan los n argumentos (opciones) proporcionados al comando.
$? -> Valor de ejecucin del comando anterior, si es cero es que el comando anterior se ejecut
sin errores, de lo contrario hubo algn error.
$$ -> Identifica el proceso del guin.
$! -> Identifica el ltimo proceso arrancado en el trasfondo (background).
2. Variables creadas por el programador.
Las variables pueden ser creadas en cualquier momento, pero siempre antes de su utilizacin de
manera
muy
simple,
se
escribe:
nombre_variable=valor_variable
En cualquier momento posterior a la creacin si se coloca $nombre_variable dentro del entorno de la
Shell
el
sistema
colocar
all
valor_variable.
SALUDO=Bienvenido
En cualquier momento posterior si se pone $SALUDO, Bash colocar ah Bienvenido.
Una variable tambin puede ser la salida de un comando si ponemos al principio y final del mismo un
acento
invertido.
SALIDA=`comando`
Le indicar al sistema que donde se escriba $SALIDA debe poner la salida de ese comando. Es
prctica comn utilizar maysculas para las variables a fin de identificarlas fcilmente dentro del guin.
Cuando se ejecutan Scripts que pueden ser "hijos" de otro guin en ocasiones es necesario exportar
las
variables,
esto
se
hace
escribiendo:
export
nombre_variable
3. Caracteres especiales.
Existe un grupo de caracteres especiales (tambin llamados meta caracteres) que tienen significado
propio
para
Bash.
Algunos
son:
\ -> Le indica a Bash que ignore el carcter especial que viene despus.
" " -> Cuando se encierra entre comillas dobles un texto o una variables si esta es una frase
(cadena de palabras) Bash lo interpretar como una cadena nica.
$ -> Identifica que lo que le sigue es una variable.
' ' -> Las comillas simples se usan para desactivar todos los caracteres especiales encerrados
dentro de ellas, as tenemos que si escribe '$VARIABLE' Bash interpreta literalmente lo escrito y no
como variable.
# -> Cuando se coloca este carcter dentro de una linea del guin, Bash ignora el resto de la
linea. Muy til para hacer comentarios y anotaciones o para inhabilitar una linea de comandos al hacer
pruebas.
; -> Este carcter se usa para separar la ejecucin de distintos comandos en una misma linea
de comandos.
`` -> Se utiliza como se explic en el punto anterior, para convertir la salida de un comando en
una variable. El comando en cuestin se ejecuta en una sub shell.
Tambin estn |, (), !, >, <, cuyo significado se ver ms adelante. El espacio es otro carcter especial
y se interpreta por bash como el separador del nombre del programa y las opciones dentro de la linea
de comandos, por esta razn es importante encerrar entre comillas dobles el texto o las propias
variables
cuando
son
una
frase
de
varias
palabras.
Otro carcter que debe evitarse en lo posible su uso es el guin (-) ya que para la mayora de los
programas se usa para indicarle al propio programa que lo que sigue es una de sus opciones, de
manera tal por ejemplo, si usted crea un archivo con nombre -archivo (en caso que pueda) despus
ser difcil borrarlo ya que rm (programa que borra) tratar el archivo como una de sus opciones (al
"ver" el Script) y dar de error algo as, "Opcin -archivo no se reconoce".
4. Palabras especiales.
Hay un grupo de palabras que tienen significado especial para bash y que siempre que se pueda
deben evitarse cuando se escriben lineas de comandos para no crearle "confusiones" algunas son:
exit, break, continue, true, false, return etc... cuyo significado es ms o menos as:
return -> Como exit pero solo se sale del comando u operacin sin cerrar el guin
Agumentos
de
cadenas
----->
Cierto
si
------------------------------>
La
cadena
est
vaca
------------------------------>
La
cadena
no
est
vaca
=
cadena2
---------->
Si
las
cadenas
son
iguales
!=
cadena2
--------->
Si
las
cadenas
son
diferentes
<>
Si
la
cadena
1
va
antes
en
el
orden
lexicogrfico
cadena1
>cadena2
----------->
Si
la
cadena
va
despues
en
el
orden
lexicogrfico
6. Entrada / Salida.
En algunas ocasiones ser necesario leer ciertas variables desde el teclado o imprimirlas a la pantalla,
para imprimir a la pantalla se pueden invocar dos programas en la linea de comandos:
echo
el
teclado
se
usa:
read
Si hacemos un read sin asignar variable, el dato de almacena en $REPLY una variable del sistema.
Tanto
el
comando echo como read tienen
sus
propias
opciones.
Ejemplos:
1. Si creamos en una linea del Script una variable como un comando y queremos imprimir la variable a
la
pantalla
podemos
hacer
algo
as:
VARIABLE=`comando`
echo
"$VARIABLE"
La palabra $VARIABLE est puesta entre comillas dobles para que se imprima todo el texto ignorando
los
espacios
entre
palabras.
2.
Si
escribimos
en
una
linea
del
guin
read
PREGUNTA
habremos creado una variable de nombre PREGUNTA as es que si luego ponemos
echo
"$PREGUNTA"
Se imprimir a la pantalla lo que se escribi en el teclado al presionar la tecla Enter.
Con los elementos tratados hasta aqu ya podemos escribir nuestros primeros Scripts
Script
#!/bin/bash
echo
Cuando
se
1
corre
este
Script
2 ->
#!/bin/bash
VARIABLE=Hola
echo
Ntese
la
variable
Script
3 ->
#!/bin/bash
VARIABLE=Hola
SALUDO=mundo
echo
En
los
Script
4 ->
#!/bin/bash
VAR=auto
echo
"Me
echo
'Me
echo
"Me
guin
Lo
entre
Hola
imprimir
se
mismo
comillas
Cuando
la
pantalla
usando
dobles
se
para
usan
que
una
imprima
mas
Hola
de
mundo
mundo
variable
mundo
"$VARIABLE"
todo
el
texto.
una
variable
"$VARIABLE""$SALUDO"
tres
Si
casos
se
compr
compr
compr
se
usan
un
un
un
imprimir
caracteres
$VAR"
$VAR'
\$VAR"
a
especiales
Imprimir
Imprimir
Imprimir
la
la
Me
Me
Me
pantalla
Hola
mundo
cosa
puede
cambiar
compr
compr
compr
un
un
un
auto
$VAR
$VAR
Note como las comillas simples y el carcter \ hacen que Bash ignore la funcin del carcter especial
$. Siempre las comillas simples harn que se ignore todos los meta caracteres encerrados entre ellas
y
\
solo
el
que
sigue
despus.
7. Condicionales.
Los condicionales son claves para "explicarle" a la mquina como debe proceder en una tarea
cualquiera, esto se hace casi como si se estuviera explicando una tarea a ejecutar a otra persona.
if then fi
El condicional por excelencia tiene seis palabras claves que son if, elif, else, then y fi. Donde las
palabras tienen un significado comunicativo (en Ingls) casi literal, tal y cual se tratara con otra
persona
y
que
Bash
por
defecto
las
entienda
con
ese
significado.
"$VAR1"
=
Son
Son
"$VAR2"
];
then
iguales
diferentes
Los corchetes son parte de la sintaxis de Bash y en realidad son un atajo (shortcut) al programa test
que es el que ejecuta la accin de comparacin. Observe siempre los espacios vacos entre los
elementos que conforman la linea de comandos (excepto entre el ltimo corchete y el ;), recuerde que
ese espacio vaco por defecto Bash lo interpreta como final de un elemento y comienzo de otro. Si
corre este guin siempre se imprimir a pantalla Son diferentes, ya que la condicin es falsa. Pero si
cambia el valor de VAR2=Pablo entonces se imprime Son iguales. Guin 6 Un guin que verifica si
existe un directorio y si no existe lo crea e imprime mensajes a pantalla comunicando la accin
ejecutada.
#!/bin/bash
DIR=~/fotos
(crea
como
variable
el
directorio
/home/fotos)
if
[
!
-d
"$DIR"
];
then
(verifica
si
no
existe
el
directorio)
mkdir
"$DIR"
(si
la
condicin
es
cierta,
no
existe
el
directorio,
lo
crea)
if [ $? -eq 0 ]; then (verifica si la accin se ejecut sin errores, de serlo imprime lo que sigue)
echo
"$DIR"
ha
sido
creado..."
else
(de
lo
contrario
imprime)
echo
"Se
produce
un
error
al
crear
"$DIR"
fi (Se cierra la condicin abierta en la realizacin del directorio segundo if)
else
(
de
lo
contrario,
relativo
al
primer
if)
echo
"Se
usar
"$DIR"
existente"
fi
En
este
guin
pueden
verse
varias
cosas
nuevas:
1. El carcter ! niega la accin, si se hubiera escrito if [ -d "$DIR" ] lo que se estaba evaluando era la
condicin existe el directorio"$DIR"? pero al colocar ! se evala lo contrario.
2.
El
carcter
~
significa
el
/home
del
usuario.
3. La expresin -eq se utiliza cuando quieren compararse valores numricos, y significa =
4.
Se
usa
una
de
las
variables
del
sistema
"$?"
explicada
ms
arriba.
5. Pueden utilizarse unos condicionales dentro de otros siempre que se cierren apropiadamente.
#!/bin/bash
echo
read
if
echo
elif
echo
elif
echo
else
echo
fi
"Diga
[
si
"$VAR"
[
"$VAR"
"$VAR"
puede
"No
"Lo
que
=
"Escribiste
=
"Escribiste
=
si
];
no
];
""
];
dejarlo
escribi
en
no
se
no:"
VAR
then
-si-"
then
-no-"
then
blanco"
acepta"
Observe que se est evaluando varias opciones de la misma condicin por lo que lo apropiado es
incorporar los respectivos elif dentro de la misma condicional. Un elemento nuevo que se incorpora
aqu es la condicin " " que quiere decir "la variable est vaca", en este caso, cuando no se escribi
nada.
case-in esac
Cuando una variable puede puede adquirir varios valores o significados diferentes, ya hemos visto
cmo puede usarse la palabra elif para hacer diferentes ejecuciones de comandos dentro de una
misma condicional if-then-fi de acuerdo al valor de la variable. Una forma de realizar la misma accin
sin escribir tantas lineas de condicionales elif y con ello disminuir el tamao del guin es la utilizacin
de la sentencia case-in-esac. Esta sentencia permite vincular patrones de texto con conjuntos de
comandos; cuando la variable de la sentencia coincide con alguno de los patrones, se ejecuta el
conjunto de comandos asociados. La sintaxis de la sentencia case-in esac es como sigue
case
posibilidad
posibilidad
1)
2)
"uno
"uno
"nombre_variable"
o
ms
o
ms
comandos"
comandos"
in
;;
;;
posibilidad
esac
n)
Script
#!/bin/bash
echo
read
case
s)
no)
*)
echo
esac
"uno
ms
comandos"
;;
8
"Diga
echo
echo
"Lo
si
"$VAR"
"Escribiste
"Escribiste
escribi
que
-si-"
-no-"
no
se
acepta"
no:"
VAR
in
;;
;;
;;
Este Script es el mismo que el Script 7 pero utilizando la sentencia case-in-esac Observe que el
carcter (*) utilizado en la ltima opcin significa "patrn no contemplado" en este caso.
8. Funciones
Como mecanismo de estructuracin en la codificacin de Scripts, existe la posibilidad de crear
funciones. Su definicin exige la definicin de un nombre y un cuerpo. El nombre que debe ser
representativo , es seguido de apertura y cierre de parntesis, mientras que el cuerpo se delimita con
llaves.
La
sintaxis
es
la
siguiente.
nombre_funcin
()
{
uno
o
ms
comandos
}
Una vez definida la funcin se utiliza como si de un comando se tratase, invocndolo con el nombre
de la funcin. Hay que hacer una invocacin de la funcin ya definida para que se ejecute el cdigo en
su interior y se convierta en operativa. Las funciones son muy tiles cuando segmentos del cdigo del
Script son repetitivos, de tal forma solo se escriben una vez y se invocan todas las veces que haga
falta,
practicando
el
divino
arte
de
la
recursin.
Creando
ayuda
{
echo
}
una
(se
()
"Las
opciones
funcin
la
define
son
no,
funcin
luego
apriete
simple:
ayuda)
Enter"
Despus de creada y activada la funcin, cada vez que necesitemos la "ayuda" dentro del guin solo
colocamos la palabra ayuda como si se tratase de un comando mas y Bash ejecutar el cdigo
incluido dentro de la funcin, es decir imprimir el texto "Las opciones son s o no, luego apriete
Enter". Las funciones pueden ser definidas en cualquier orden, pueden ser tantas como haga falta y
pueden contener un paquete relativamente complejo de comandos. Un programador que ha pensado
la estructura del Script antes de empezarlo puede y de hecho se hace, crear todas las funciones que
necesitar
al
empezar
el
guin.
Pruebe
lo
siguiente
Script
#!/bin/bash
salir
{
exit
}
hola()
{
echo
}
9
()
#(Se
crea
la
funcin
salir)
#(comando)
#(Se
crea
la
Hola
funcin
Hola)
#(comando)
hola
salir
echo
(Se
(
"Esto
Se
no
invoca
invoca
se
la
la
funcin
funcin
imprime
Hola)
salir)
nunca"
Ver que el ltimo echo no se imprime ya que primero se invoca la funcin hola y luego la funcin salir
que cierra el guin (exit). Trate ahora poniendo un comentario (#) a la linea que invoca la funcin salir
(linea 11) y note la diferencia, vera como se imprime el ltimo echo. Observe tambin como se han
comentado aquellas cosas que no son parte integrante del guin pero que se pueden escribir para
hacer
aclaraciones
o
anotaciones
de
inters.
9. Ciclos, lazos o bucles
While-do done
La sentencia while-do done se utiliza para ejecutar un grupo de comandos en forma repetida mientras
una
condicin
sea
verdadera.
Su
sintaxis
es:
while
lista
de
comandos
1
do
lista
de
comandos
2
Mientras la condicin de control (lista de comandos1) sea verdadera, se ejecutaran los comandos
comprendidos entre do y done en forma repetida, si la condicin da falsa (o encuentra una interrupcin
explcita dentro del cdigo) el programa sale del bucle (se para) y continua la ejecucin por debajo del
while. Un ejemplo de la utilidad de este lazo es la posibilidad de poder escoger varias opciones de un
men sin tener que correr el guin para cada opcin, es decir se escoge y evalua una opcin y el
programa no se cierra, vuelve al men principal y se puede escoger otra opcin, tantas veces como
sea necesario. Veamos un ejemplo de como elaborar un men de opciones.
#!/bin/bash
while
[
"$OPCION"
!=
do
echo
"[1]
Listar
echo
"[2]
Ver
directorio
de
echo
"[3]
Crear
echo
"[4]
Crear
echo
"[5]
read
-p
"Ingrese
una
opcin:
case
$OPCION
1)
2)
3)
read
-p
"Nombre
del
directorio:
"
mkdir
4)
if
id
|
grep
then
read
-p
"Nombre
del
usuario:
"
useradd
else
echo
"Se
necesitan
permisos
fi;;
5);;
*)
echo
"Opcin
ingresada
invalida,
intente
esac
done
exit
Descripcin
del
"
]
archivos"
trabajo"
directorio"
usuario"
Salir"
OPCION
in
ls;;
pwd;;
DIRECTORIO
$DIRECTORIO;;
uid=0
NOMBREUSUARIO
$NOMBREUSUARIO
de
root"
de
nuevo";;
0
Script:
until-do done
La sentencia until-do done es lo contrario de while-do done es decir el lazo se cierra o para, cuando la
condicin sea falsa. Si le parece que ambas son muy parecidas est en lo cierto. En ambos casos se
pueden elaborar bucles o ciclos infinitos si la condicin de control es siempre verdadera o falsa segn
el caso, veamos Lazos infinitos Bucles infinitos son aquellos donde la ejecucin continua dentro del
bucle
indefinidamente,
veamos
cmo
hacer
un
bucle
infinito
mediante while:
while
true
do
comando
1
comando
2
comando
n
done
La condicin siempre es verdadera y se ejecutara el bucle indefinidamente, mediante untilsera as:
until
false
do
comando
1
comando
2
comando
n
done
Existe la posibilidad de salir de un bucle, independientemente del estado de la condicin, el
comando break produce el abandono del bucle inmediatamente. Veamos el guin anterior sobre la
creacin
de
un
men
utilizando
un
lazo
infinito
y
el
comando break
while
true
do
echo
"[1]
Listar
archivos"
echo
"[2]
Ver
directorio
de
trabajo"
echo
"[3]
Crear
directorio"
echo
"[4]
Crear
usuario"
echo
"[5]
Salir"
read
-p
"Ingrese
una
opcin:
"
OPCION
case
$OPCION
in
1)
ls;;
2)
pwd;;
3)
read
-p
"Nombre
del
directorio:
"
DIRECTORIO
mkdir
$DIRECTORIO;;
4)
if
id
|
grep
uid=0
then
read
useradd
else
echo
fi;;
5)
echo
break;;
*)
echo
esac
doGuin
exit
-p
"Nombre
del
"Se
usuario:
necesitan
NOMBREUSUARIO
$NOMBREUSUARIO
permisos
"Abandonando
"Opcin
"
de
root"
el
ingresada
invalida,
programa..."
intente
de
nuevo";;
11ne
0
for-in-done
Es otro tipo de ciclo o lazo disponible, la diferencia con los anteriores es que no se basa en una
condicin, sino que ejecuta el bucle una cantidad determinada de veces, su sintaxis es la siguiente:
for
variable
in
arg
1
arg
2
......arg
n
do
comando
1
comando
2
comando
n
done
Ejemplos
for
do
echo
done
LETRA
in
de
f
$LETRA
En este guin el comando echo se ejecutara tantas veces como argumentos se hayan puesto despus
del in, por lo tanto imprimir seis lineas cada una con una letra de la a a la f.
for
if
cd
rm
cd
fi
done
ARCHIVO
-d
in
$ARCHIVO
];
*
then
$ARCHIVO
*.tmp
..
Este es un guin entra en todos los subdirectorios del directorio actual de trabajo y borrar todos los
archivos .tmp (temporales). En este caso el carcter * se usa en la primera linea con el significado
"tantas veces como sea necesario" y en la penltima linea como "cualquier cosa".
10. Redireccionamiento.
Es frecuente la necesidad de redirigir resultados de la ejecucin de un comando a diferentes lugares,
que pueden ser los descriptores de ficheros stdin, stdout y stderr, a la entrada de otro comando o a un
archivo en el disco duro, esto se llama redireccin y es muy til en la escritura de guiones.
1.
Los
descriptores
de
archivos
En Bash al igual que en cualquier otro programa de consola de Linux tenemos tres flujos o
descriptores
de
archivos
abiertos
por
defecto:
En
final
al
de
final
la
de
linea
la
linea
de
de
comandos
comandos
2>&1.
1>&2
2.Entubado
Las tuberas se utilizan para enviar la salida de un comando o proceso a la entrada de otro, esto es
con frecuencia necesario para completar una accin iniciada con un comando que debe ser
completada con otro. Es simple el modo de operar, solo se coloca el carcter | en la linea de
comandos entre un programa y otro. Este carcter (|) se conoce como tubo (pipe)
#!/bin/bash
file
-b
"$1"
|
grep
-i
"vorbis"
>/dev/null
2>&1
if
[
$?
-eq
0
];
then
oggdec
"$1"
echo
"Hecho"
else
echo
"Archivo
no
soportado"
exit
fi
Este guin convierte a wav cualquier archivo de audio ogg. Primero se invoca a file para que analice el
tipo de archivo correspondiente a la variable $1 que como ya se sabe es el primer argumento
introducido en la linea de comandos (por ejemplo la ruta hasta un archivo). Luego la salida de file se
entuba al programa grep que determina si dentro del archivo aparece la palabra vorbis (caso de los
archivos de audio ogg). El condiciomal if- then-fi chequea que sea cierto (es decir la palabra vorbis si
exista, por lo que es un archivo ogg de audio), entonces se decodifica a wav con el comando oggdec,
de lo contrario se imprime que es un archivo no soportado. Tanto la salida estndar como la de errores
se enva a /dev/null, un dispositivo que "desaparece" la informacin suprimiendo la salida por pantalla.
Esto es conveniente y saludable en muchas lineas de comandos cuando la salida puede generar gran
cantidad de informacin tanto de salida estndar como de errores y estos no nos interesan. Solo se
escribe
>/dev/null
2>&1.
11. Globales y expansiones.
1.
Globales
Estos son aliados cuando uno quiere ahorrarse teclazos y funcionan como "generalizadores" de
cosas,
los
globales
mas
comunes
son:
1.
~ Le dice a Bash que es el directorio home del usuario.
2.
* Significa "todo lo que puedas incluir ah" de forma tal que si ponemos el comando ls ~/*.wav
listar todos los archivos .wav que estn en el directorio home del usuario. Ahora si escribimos ls ~/m*
nos listar todos los archivos de home que empiecen con m.
3.
. Un punto en el entorno de la shell significa "el directorio donde estamos trabajando"