Anda di halaman 1dari 22

Laboratorio de Arquitectura del Computador

UNIVERSIDAD CATLICA DE SANTA MARA


PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS

SESIN 5:

Raspbian en Raspberry PI 2
I
OBJETIVOS

Conocer el manejo del sistema de archivos de Raspbian


Manipular los archivos y directorios.
Cambiar los permisos de los archivos y directorios
Visualizar el contenido de los archivos
Conocer la manipulacin de archivos que tengan la informacin estructurada en
campos.
Crear copias de seguridad de los ficheros.
Comprimir y descomprimir ficheros
Construir Bloques de comandos
Conocer y aplicar los caracteres comodines
Conocer y aplicar la formacin de expresiones regulares

Laboratorio de Arquitectura del Computador

II
MARCO TEORICO
Archivos
Bajo la mayora de los sistemas operativos existe el concepto de archivo (fichero), el cual
es un conjunto de informacin al que se le ha asignado un nombre. Cualquier cosa salvada
en el disco es guardada en un archivo individual.
Ejemplos:
Un mensaje de correo, un programa que puede ser ejecutado.
No hay un formato estndar para los nombres de los ficheros como lo hay en MS-DOS y
en otros sistemas operativos; en general estos pueden contener cualquier carcter (excepto
/ -rutas de ficheros), y estn limitados a 256 caracteres de longitud.
Tres son los tipos de archivos:

Archivos de datos: contienen informacin que suele ser almacenada, recuperada y


manipulada de acuerdo con las necesidades del usuario.
Archivos de programa: contienen todas las instrucciones que permitirn al computador
realizar las tareas determinadas. Su complejidad depender del tipo de tarea
demandada; desde las ms sencillas, que pueden constar tan slo de una lnea, hasta las
ms sofisticadas.
Archivos de directorios: mantienen informacin de todos los archivos del disco.

Directorios
Un directorio es simplemente una coleccin de ficheros. Puede ser considerado como una
"carpeta" que contiene muchos ficheros diferentes. Los directorios tambin tienen nombre
con el que los podemos identificar. Adems, los directorios mantienen una estructura de
rbol; es decir, directorios pueden contener otros directorios.
Un fichero puede ser referenciado por su nombre con camino, el cual esta constituido por
su nombre, antecedido por el nombre del directorio que lo contiene.
Ejemplo:
Supongamos que Larry tiene un directorio de nombre papers que contiene tres ficheros:
history-final, english-lit y masters-thesis. (Cada uno de los tres ficheros contiene
informacin sobre tres de los proyectos en los que Larry esta trabajando). Para referirse al
fichero english-lit, Larry puede especificar su camino:
papers/english-lit
Como puede ver, el directorio y el nombre del fichero van separados por un carcter /. Por
esta razn, los nombres de fichero no pueden contener este carcter. Los usuarios de

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

MS-DOS encontraran esta convencin familiar, aunque en el mundo MS-DOS se usa el


carcter \).
Como hemos mencionado, los directorios pueden anidarse uno dentro de otro.
Ejemplo:
Supongamos que Larry tiene otro directorio dentro de papers llamado notes y dentro de
este ltimo existe otro llamado cheat-sheet. El camino de este fichero seria
papers/notes/cheat-sheet
Por lo tanto, el camino realmente es la "ruta" que se debe tomar para localizar a un fichero.
El directorio sobre un subdirectorio dado es conocido como el directorio padre. Aqu, el
directorio papers es el padre del directorio notes.
El rbol de directorios
La mayora de los sistemas UNIX tienen una distribucin de ficheros estndar, de forma
que recursos y ficheros puedan ser fcilmente localizados. Esta distribucin forma el rbol
de directorios, el cual comienza en el directorio "/", tambin conocido como "directorio
raz". Directamente por debajo de / hay algunos subdirectorios importantes: /bin, /etc, /dev
y /usr, entre otros. Estos a su vez contienen otros directorios con ficheros de configuracin
del sistema, programas, etc.
En particular, cada usuario tiene un directorio "home". Este es el directorio en el que el
usuario guardara sus ficheros. En los ejemplos anteriores, todos los ficheros de Larry
(como cheat-sheer y history-final) estaban contenidos en el directorio home de Larry.
Usualmente, los directorios home de los usuarios cuelgan de /home y son nombrados con
el nombre del usuario al que pertenecen.
Por lo tanto, el directorio "home" de Larry es /home/larry.
En la figura 3.1 se muestra un rbol de directorio de ejemplo. Este debera darle una idea
de como esta organizado en su sistema el rbol de directorios. Esto podra variar algo.
/

bin
dev
etc
home
lib
proc
tmp
usr

larry
sam

X386
bin
emacs
etc
g++include
include
lib
local

bin
emacs
etc
Lib

man
Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador


spool
src linux tmp

Figura 2.1: Tpico rbol de directorios Unix (resumido).

Directorio de trabajo actual


En cualquier momento, las rdenes que teclee al intrprete de comandos son dadas en
trminos de su directorio de trabajo actual. Puede pensar en su directorio actual de trabajo
como en el directorio en el que actualmente esta "situado". Cuando entra en el sistema, su
directorio de trabajo se inicializa a su directorio home, para el ejemplo sera /home/larry.
En cualquier momento que referencie a un fichero, puede hacerlo en relacin a su directorio
de trabajo actual, en lugar de especificar el camino completo del fichero.
Ejemplo:
Larry tiene el directorio papers, y papers contiene el fichero history-final. Si Larry quiere
echar un vistazo a ese fichero, puede usar la orden
/home/larry# more /home/larry/papers/history-final
La orden more simplemente muestra el fichero, pantalla a pantalla. Pero, como el directorio
de trabajo actual de Larry es /home/larry, podra haberse referido al fichero de forma
relativa a su directorio de trabajo actual. La orden seria:
/home/larry# more papers/history-final
Por lo tanto, si comienza el nombre de un fichero (como papers/final) con un carcter
distinto a "/", el sistema supone que se esta refiriendo al fichero con su posicin relativa a
su directorio de trabajo. Esto es conocido como camino relativo.
Por otra parte, si comienza el nombre del fichero con "/", el sistema interpreta esto como
un camino completo, es decir, el camino al fichero completo desde el directorio raz, /.
Esto es conocido como camino absoluto.

Refirindose al directorio home


El directorio "home" puede ser referenciado usando el carcter de la tilde ( ~ ).
Ejemplo, la orden
/home/larry$ more ~/papers/history-final
es equivalente a
/home/larry$ more /home/larry/papers/history-final
El carcter "~" es simplemente sustituido por el intrprete de comandos, con el nombre del
directorio home. Adems, tambin puede especificar otros directorios home de usuarios
con la tilde. El camino "~karl/letters" es traducido por el intrprete de rdenes a

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

"/home/karl/letters" (si /home/karl es el directorio home de karl). El uso de la tilde es


simplemente un atajo; no existe ningn directorio llamado "~", es simplemente una ayuda
sintctica proporcionada por el intrprete de comandos.
Comprimir y descomprimir
El efecto de la operacin de comprensin hace que el tamao del archivo disminuya. Del
mismo modo, para que un archivo comprimido pueda tener el tamao original implica
realizar la operacin de descompresin. Para comprimir un archivo se tiene un conjunto
utilitarios tales como gzip, bzip2, zip, etc., y los correspondientes utilitarios que
descomprimen los anteriores formatos son: gunzip, bunzip2 y unzip.

Las operaciones de empaquetar y compresin se utilizan con frecuencia para


efectuar copias de seguridad o backups.

tar
El comando tar permite empaquetar ficheros. Permite incluir todos los archivos juntos en
un mismo archivo, preservando las estructuras de directorios y permisos de los mismos.
Generalmente se usa para sacar backups. Si empaqueto dos archivos de 2 Megabytes el
resultado ser un archivo de 4 megabytes.
El formato del comando tar es:
tar <opciones> <fichero1> <fichero2> ...<ficheroN>

donde:
<fichero1> hasta <ficheroN> : es la lista de ficheros a aadir o extraer
<opciones>

del archivo.

-c
para crear un nuevo fichero, se le indica que se va a empaquetar.
-v muestra lnea por lnea lo que est empaquetando, muestra los nombres de los
ficheros segn se van empaquetando.
-f para indicar que lo siguiente a l es el nombre del archivo. -x
para indicar que se va a desempaquetar.
-t
muestra lo que hay en el archivo empaquetado, sin desempaquetarlo.
Las operaciones que se pueden realizar con tar son empaquetado y desempaquetado.

IV
ACTIVIDADES

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

01. Encienda su computador.


02. Ingrese al Linux
3. Ingrese con el nombre de su usuario asignado por su profesor y su correspondiente
password.
04. Ingrese cada uno de los siguientes ejemplos y observe lo que sucede
Comandos para directorios
pwd: muestra el directorio de trabajo actual.
Ejemplo:
/home/larry$ pwd
mkdir: comando que permite crear directorios.
Ejemplo: en su directorio home cree los directorios textos, grficos y personal.
/home/larry$ mkdir textos
/home/larry$ mkdir graficos personal crea dos directorios la mismo tiempo
/home/larry$ mkdir papers
ls Muestra informacin sobre los ficheros o directorios indicados ordenados
alfabticamente.
Sintaxis: ls [opciones] <fichero1> <fichero2> ...<ficheroN>
Donde <fichero1> a <ficheroN> son los ficheros o directorios a listar.
Opciones:
-F usada para mostrar informacin sobre el tipo de fichero. Aade el carcter /
a cada nombre si son subdirectorios, un * si es un fichero ejecutable.
No aade nada, si es un fichero normal, es decir no es ni un directorio ni
un ejecutable.
-l da un listado "largo" incluyendo tamao, propietario, permisos, etc. -r
muestra el contenido ordenado de forma inversa.
-a
muestra los archivos ocultos (empiezan con . - .term/)
Ejemplo:
/home/larry$ ls
/home/larry$ ls l
/home/larry$ ls r
/home/larry$ ls a
/home/larry$ ls F
/home/larry$ ls
/home/larry$ ls /etc
/home/larry$ ls -lF
cd Cambia el directorio de trabajo actual.

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

Sintaxis: cd <directorio>
Donde <directorio> es el directorio al que cambiamos. ("." se refiere al directorio
actual, ".." al directorio padre.)
Ejemplo:
/home/larry$ cd papers
/home/larry/papers$
Como se puede ver, la lnea de comandos de Larry cambia para mostrar su directorio
actual de trabajo. Ahora que ya esta en el directorio papers puede echarle un vistazo a
su fichero history-final con el comando:
/home/larry/papers$ more history-final
Ahora Larry esta en el subdirectorio papers, para volver al directorio padre de este,
usara la orden
/home/larry/papers$ cd
.. /home/larry$
(Dese cuenta del espacio entre "cd" y ".."). Cada directorio tiene una entrada de nombre
".." la cual se refiere al directorio padre. De igual forma, existe en cada directorio la
entrada "." la cual se refiere a si mismo. As que el comando
/home/larry/papers$ cd
. /home/larry$
nos deja donde estamos.
Tambin pueden usarse nombres con el camino absoluto en la orden cd. Para ir al
directorio de Karl con cd, introduciremos la siguiente orden.
/home/larry/papers$ cd
/home/karl /home/karl$
Tambin, usando cd sin argumentos nos llevara a nuestro directorio de origen.
/home/karl$ cd
/home/larry$

rmdir Esta orden borra directorios vacos. Al usar rmdir, el directorio de trabajo
actual no debe de estar dentro del directorio a borrar.
Sintaxis: rmdir <dir1> <dir2> ...<dirN>
Donde <dir1> a <dirN> son los directorios a borrar.
Ejemplo:
/home/larry$ rmdir /home/larry/papers borra el directorio /home/larry/papers si esta
vaco.
Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

/home/larry$mkdir eliminar
/home/larry$cd eliminar
/home/larry/eliminar$mkdir borra borra1
/home/larry$cd
/home/larry$rmdir eliminar (no elimina porque no esta vacio)
/home/larry$mkdir eliminar/borra eliminar/borra1 eliminar
/home/larry$rm -r eliminar

(1)

es equivalente a (1)

Creacin de archivos
ed: permite crear archivos.
Sintaxis: ed <fichero1>
Donde <fichero1>es el fichero a crear.
Ejemplo: en el directorio textos creado anteriormente crear el archivo ejemplos:
/home/larry$cd textos
/home/larry/textos$pwd
/home/larry$de ejemplos
para introducir el texto presione a
introduzca el siguiente texto al archivo:
Esta orden facilita el paso al modo insercin de texto, aadiendo nuevo texto al
que ya tuviese.
Escriba el texto que contendr en archivo ejemplos.
Una vez que la posicin del cursor est en la lnea siguiente, teclee .
ed entiende el punto slo en una lnea en blanco, como una instruccin que
ordena el retorno al modo orden.
Para grabar el archivo slo tendr que teclear w .
ed devolver en su pantalla el nmero de caracteres escritos en disco.
q devuelve el prompt de su shell.
a para retornar a modo insercin y seguir escribiendo

Comandos para archivos


cp: Copia fichero(s) en otro fichero o directorio.
Sintaxis: cp <fichero1> <fichero2> ...<ficheroN> <destino>
Donde <fichero1> a <ficheroN> son los ficheros a copiar.
<destino> es el fichero o directorio destino.

Ejemplo:
/home/larry$ cp /etc/termcap termcap
/home/larry$ ls -l
/home/larry$ cd personal
Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

/home/larry/personal$cp /etc/shells shells


/home/larry/personal$ ls F
/home/larry/personal$ cp shells bells
/home/larry/ personal$ ls F
/home/larry/ personal$ cp ../bells joe copia el fichero ../bells al fichero o directorio joe.
Ntese como se usa el directorio "." para referirnos al directorio actual.
mv Mueve fichero(s) a otro fichero o directorio. Es equivalente a una copia seguida del
borrado del original. Puede ser usado para renombrar ficheros, como el comando MSDOS RENAME.
Sintaxis: mv <fichero1> <fichero2> ...<ficheroN> <destino>
Donde <fichero1> a <ficheroN> son los ficheros a "mover"
<destino> es el fichero o directorio destino.

Ejemplo:
/home/larry/personal$ mv joe
sells /home/larry/ personal$ ls F
/home/larry/ personal$ cd ..
/home/larry$mv graficos figuras
/home/larry$ls -l

Ntese como joe ya no existe, en su lugar esta el fichero sells. Esta orden puede usarse
para renombrar ficheros, como acabamos de hacer, pero tambin para mover ficheros a
directorios diferentes.
Nota: mv y cp sobreescribiran los ficheros destino (si ya existen) sin consultar. Sea cuidadoso
cuando mueva un fichero a otro directorio: puede haber ya un fichero con el mismo nombre
que ser sobrescrito.

rm Borra ficheros. Ntese que cuando los ficheros son borrados en UNIX, son
irrecuperables (a diferencia de MS-DOS, donde usualmente se puede recuperar un
fichero borrado).
Sintaxis: rm [opciones ]<fichero1> <fichero2> ...<ficheroN>
Donde <fichero1> a <ficheroN> son los nombres de los ficheros a borrar.
Opciones:
-i pedir confirmacin antes de borrar un fichero. r elimina recursivamente
Ejemplo:
/home/larry/personal$ rm -i /home/larry/ termcap
/home/larry/personal$ rm bells sells

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

/home/larry/personal$ ls F

Viendo el contenidos de los ficheros


Las rdenes more y cat son usadas para ver el contenido de ficheros.
more Muestra el contenido de los ficheros indicados, una pantalla cada vez.
Sintaxis: more <fichero1> <fichero2> ...<ficheroN>
Donde <fichero1> a <ficheroN> son los ficheros a mostrar.
Ejemplo:
/home/larry/personal$ more shells
Durante la ejecucin de more pulse:
Space: para avanzar a la pagina siguiente.
b:
para volver a la pagina anterior.
q:
finalizar la ejecucin de more.
cat Oficialmente usado para concatenar ficheros, cat tambin es usado para mostrar el
contenido completo de un fichero de una vez.
Sintaxis: cat <fichero1> <fichero2> ...<ficheroN>
Ejemplo:
/home/larry/personal$ cat /etc/termcap
head permite visualizar las N primeras lneas del contenido de un archivo.
Ejemplo:
$ head 5 termcap .
tail permite visualizar las N ltimas lneas del contenido de un archivo.
Ejemplo:
$ tail 9 termcap .
chmod permite modificar los permisos de un archivo. El propietario puede modificar
estos derechos, tambin el administrador del sistema.
Sintaxis:
chmod <permisos> nombre_archivo
donde:
<permisos> tienen la forma siguiente: rwx rwx rwx
Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

r
w
x

permiso de lectura
permiso de escritura
permiso de ejecucin

4
2
1
7
Podr observar que existen 3 grupos de rwx, estos corresponden a lo siguiente:
La primera corresponde a los usuarios
La segunda corresponde al grupo
Y la tercera a otros

u
g
o

Ejemplo:
Para poder modificar se puede sumar el valor de los permisos para cada uno de los
grupos. Por lo tanto, si quisiramos cambiar los permisos a rwxr-xr-- de un archivo
denominado ejemplo, se sumara:
para usuario rwx 4+2+1=7
para grupo r-x 4+0+1=5
para otros r-- 4+0+0=4
Entonces, se tendra que escribir en el shell:
$chmod 754 ejemplo .
Otra forma de cambiar los permisos es utilizar las abreviaturas para los usuarios,
grupos y otros, adems de:
+ para aadir el permiso para quitar el permiso
Ejemplo:
$chmod o+x ejemplo .
$chmod w ejemplo .
$chmod 700 ejemplo .

umask los permisos asignados a un archivo cuando son creados dependen de una
variable denominada user mask. El permiso implcito por defecto suele tener el valor
rw-rw-rw- (modo 666).
Por ejemplo, si quisiramos que nuestro modo por defecto para los archivos sea rw-r---- (modo 640), entonces:
666-640=26
por tanto se tendr que
escribir: $umask 26

Empaquetar
Para empaquetar utilice la opcin -c
Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

Por ejemplo, el comando siguiente empaqueta todos los archivos del directorio actual.
$ tar -cvf backup.tar *

Desempaquetar
Para desempaquetar utilice la opcin -x. Si tenemos un fichero .tar y queremos
desempaquetarlo entonces
$ tar -xvf backup.tar

El comando extraer el fichero tar backup.tar en el directorio actual. Con ello hay
que tener cuidado debido a que esto puede ser peligroso a veces cuando se extraen
ficheros de un fichero tar, los ficheros antiguos se sobrescriben.
Por otra parte, antes de extraer ficheros tar es importante conocer donde se deben
desempaquetar los ficheros. Por ejemplo, digamos que se archivaron los siguientes
ficheros: /etc/hosts, /etc/group, y /etc/passwd. Si se uso el comando
# tar cvf backupetc.tar /etc/hosts /etc/group /etc/passwd

el nombre de directorio /etc se aadi al principio de cada nombre de fichero. Para


poder extraer los ficheros en la localizacin correcta, se necesitara utilizar los
siguientes comandos:
# cd /
# tar xvf backupetc.tar

Puesto que los ficheros se extraen con el nombre de camino almacenado en el


fichero de archivo. Sin embargo, si se archivaron los ficheros con los comandos
# cd /etc
# tar cvf backupetc hosts group passwd

Los nombres de directorio no se salvaron en el fichero de archivo. Por esto se


necesitar hacer "cd /etc" antes de extraer los ficheros. Como se puede ver, el cmo
haya sido creado un fichero tar marca una gran diferencia en cmo se extrae.
Entonces se hace necesario el conocer como estn guardados los nombres de los
ficheros empaquetados y para ello podemos usar la opcin -t del comando tar.
# tar -tvf backupetc.tar

gzip
Sirve para comprimir un archivo (la compresin se realiza a un solo fichero). Lo
que hace es crear un archivo con extensin gz. El formato es:
gzip <nombre del
fichero> $gzip mio
$gzip .9 prueba

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

el parmetro .9 indica que utilice el mayor factor de compresin.


La combinacin de tar y gz es lo que permite el tener mltiples ficheros
comprimidos en un slo archivo. Es decir, si empaquetamos un directorio con tar y
luego comprimimos ese archivo tar con gz, obtenemos un tar.gz comprimido con
mltiples ficheros.
$ tar cvf backup1.tar /etc
$ gzip -9 backup1.tar

Como resultado de aplicar estos comandos tendremos el archivo backup1.tar.gz


Para descomprimir y tener todos los archivos desempaquetados, deberemos aplicar
los siguientes comandos:
# gunzip backup1.tar.gz
# tar xvf backup1.tar

gunzip
Es usado para descomprimir un fichero comprimido con gzip. Es equivalente al
comando gzip -d.

bzip2
Con el mismo sistema de funcionamiento que gzip. Obtiene una mejor compresin
que el gzip, aunque tarda ms en comprimir. La extensin que le coloca es bz2.

bunzip2
Con el mismo sistema de funcionamiento que gunzip

zip
Permite comprimir ficheros, directorios completos, directorios con recursividad. zip
es el programa destinado a hacer de Linux capaz de leer y escribir los ficheros en
formato .zip (generados por pkzip o winzip). Para comprimir todos los ficheros de
un directorio en un zip se hara:
$ zip mizip.zip *

Para comprimir este directorio y todos los que cuelguen del mismo:
$ zip -r mizip1.zip *

unzip
Permite la descompresin.

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Laboratorio de Arquitectura del Computador

$ unzip mizip1.zip

LA TERMINAL COMO LA ENTRADA Y SALIDA ESTNDAR


Cuando estamos dentro del sistema usando la terminal bash, generalmente tecleamos
comandos para que sean ejecutados. El hecho de que estemos simplemente presionando el
teclado implica que estamos entrando datos al sistema mediante el teclado. Cuando en
ejemplos anteriores hemos usado el comando ls, ha aparecido en pantalla un listado de
archivos y directorios, claramente el sistema ha producido salida de datos mediante el
monitor.
Hemos puesto dos ejemplos, el teclado de la terminal como va para entrar datos al sistema,
y el monitor de la terminal como va de salida de los datos. Pero no son, ni mucho menos,
las nicas posibilidades. Los distintos puertos fsicos del ordenador pueden ser va de
entrada o de salida de datos, igualmente con la tarjeta de sonido, mdem, tarjeta de red,
etc.
Los sistemas UNIX (y por ello tambin los Linux), son especialmente conocidos por su
facilidad y eficiencia para pasar datos entre programas o entre programas y dispositivos,
siendo esta una de sus mltiples ventajas.

Otros conceptos importantes dentro de estos son los de entrada estndar y salida estndar
(stdin y stdout respectivamente). Por defecto, stdin apunta al teclado (los datos, se toman
generalmente por defecto del teclado), y stdout apunta a la pantalla (por defecto los
programas suelen enviar la salida por pantalla).
COMANDOS PRINCIPALES ASOCIADOS CON LA SALIDA
echo
Este comando nos permite imprimir cosas en la pantalla.
Ejemplo:
$echo Hola, usuario de Linux
Hola, usuario de Linux
Como vemos, por defecto el comando echo recibe las cadenas de texto entre comillas
(simples o dobles), y saca por defecto a la pantalla lo que le pasamos como argumento;
aunque puede enviar la salida a otros sitio, como veremos ms adelante.
cat
El comando cat tiene asociada la entrada al teclado por defecto, y la salida a la pantalla.
As que si lo llamamos sin argumentos, simplemente tecleando cat, escribiendo algo y
pulsando ENTER, volver a imprimir en pantalla cada lnea que nosotros tecleemos:
$cat Escribo
esto Escribo
esto

Y escribo esto otro


Y escribo esto otro

Continuar hasta que lo detengamos presionando las teclas CONTROL + D.


El funcionamiento de cat puede parecernos poco til, pero veamos ahora su funcionamiento
ms comn que es mostrar el contenido de un fichero:
$cat archivo
Este es el uso ms frecuente para el comando cat, tomar como entrada un fichero y sacar
su contenido por la salida estndar, pero descubriremos despus que se puede enviar el
contenido de un fichero por otras vas.
Los ficheros pueden ser objeto de entrada (leer su contenido) o de salida (escribir la salida
de un determinado comando a un fichero).
touch
Nos permite crear un fichero vaco con el nombre que nosotros le especifiquemos.
$touch miarchivo
REDIRECCIONANDO LA SALIDA DE UN COMANDO HACIA UN ARCHIVO
Redirecciona la salida de un comando a un archivo, si existe el archivo lo reemplaza.
4.

Hace lo mismo pero respeta lo que tiene el archivo y al final le adiciona lo que
estamos redireccionando.

Ejemplo:
$ls l > listado
Al ejecutar esto, la lista del contenido del directorio actual que el comando ls sacara
normalmente por pantalla, se ha escrito en el fichero listado. Si el fichero no exista, se ha
creado, y si exista y tena contenido, ha sido sobreescrito.
Ahora escribamos lo siguiente:
$echo hola >> listado
Lo que ocurre es que como listado es un fichero que ya exista y tenia contenido, la lnea
se ha escrito al final del fichero. En caso de que listado no hubiera existido, el fichero se
creaba.
$date >> listado
En este caso la salida del comando date se agrega como la ltima lnea del fichero listado.
Para ver el contenido del fichero listado podemos ejecutar
$cat listado tambin $more listado

Tambin podemos concatenar dos ms archivos en uno, utilizando el comando cat.


Ejemplo:
$cat > archivo1
Este es el archivo 1
CTRL + D
$cat > archivo2
Este es el archivo2
CTRL + D

$cat archivo1 archivo2 > archivo3


Lo que obtendremos en achivo3 ser el contenido de los archivos archivo1 y archivo2
uno detrs del otro. Verificamos el contenido de archivo3:
$cat archivo3
REDIRECCIONANDO LA ENTRADA DE UN COMANDO DESDE UN
ARCHIVO
c:

Permite enviar lo que hay en un archivo, para que el comando trabaje con l.

Ejemplo:
$echo prueba > mensaje
$mail user2 < mensaje

En el ejemplo creamos el archivo mensaje y luego lo utilizamos y nos sirve como entrada
para enviar un mensaje al usuario user2.
REDIRECCIN DE ERRORES
Con cualquier orden que genere mensajes de error mostrado en la pantalla, podemos
redireccionar su salida a otro archivo utilizando el operador 2> o 2>>, dependiendo de si
lo que se quiere es crear o aadir datos al archivo respectivamente.
Ejemplo:
$ls L /home/etc 2>log_error

CONSTRUCCIN DE BLOQUE DE COMANDOS


Pipes (Tuberas)
PIPES es la conexin de uno o ms comandos de tal manera que la salida del primer
comando sea la entrada del segundo y as sucesivamente.
Ejemplo:
$echo
$echo
$mail
$more

hola | mail user2


hola>file2
user2<file2
file2 | mail user2

Comandos mltiples
Varios comando en una lnea sepados por ;
Ejemplo:
$ cat mensaje ; ls $ cat mensaje
$ ls

Comandos relacionados
&& Ejecuta la primera orden y si finaliza con xito, se ejecutar la segunda orden.
r:

Ejecuta ambas rdenes, aunque la primera falle

Ejemplo:
$ ls /nuevo && more file2
$ ls /nuevo || more file1

Caracteres de generalizacin
Son comodines que reemplazan a caracteres
#

El asterisco reemplaza 0 o ms caracteres del nombre de un archivo o directorio


excepto el punto al inicio del nombre.

Interrogacin reemplaza 1 caracter ( 1 posicin)

[]

1 caracter a excepcin del punto al inicio del nombre. Define una clase de
caracteres. Dentro de esta clase se puede utilizar un guin entre los caracteres
para poner de relieve todos los caracteres en ese rango y se puede usar un signo de
exclamacin ! como primer caracter para negar la clase definida.

Ejemplo:
$ ls file [23]
$ ls file[1-3]
$ ls file[!1] $
ls file[!1-3] $
ls fi*
$ ls file?

diff
Compara dos archivos lnea por lnea y muestra todas las diferencias que hay. Si son
iguales no sale nada.
Ejemplo:
$ echo prueba1 >file3 $
echo prueba2>file4 $
diff file3 file4

BUSCAR ARCHIVOS
find
Recorre los directorios especificados generando una lista de archivos que satisfacen los
requerimientos.
Ejemplo:
$find /-name file* -print

Busca por nombre, cuando lo encuentra muestra por pantalla la ruta completa donde los
encontr.
Opciones:
-user selecciona los archivos que pertenecen al usuario que se indique a
continuacin de -user.
-mtime n selecciona los archivos modificados hace n das.
-mtime n selecciona los archivos modificados en los ltimos n das.

FILTROS
Un filtro es un comando que procesa la entrada de un flujo de datos para producir la salida
de un flujo de datos. Por ejemplo tenemos el comando cat, sort , uniq, find,grep, etc.
sort
El comando sort toma como entrada lneas de texto (de nuevo leer desde stdin si no se le
proporcionan nombres de ficheros en la lnea de comandos), y devuelve la salida ordenada
a stdout.
Ejemplo:
$ sort
durazno
aceituna
queso
leche
naranja
ctrl+D

Con este filtro tambin puede ordenar las lneas de uno o varios archivos. Esta ordenacin
no produce ninguna modificacin en los archivos tratados.
Ejemplo:
$ sort arch3
$ sort arch3 r

-r
uniq

nos muestra ordenado en forma descendente.

La orden uniq lee su entrada estndar o una lista de nombres de archivos y escribe en su
salida estndar.
Remueve las lneas duplicadas de un archivo ordenado.
Por omisin uniq escribir una instancia de cada lnea de entrada que sea diferente a las
otras lneas (contiguas).
Ejemplo:
$echo Aqp>>arch3
$echo Aqp>>arch3
$uniq arch3 $echo
Num1>>arch3 $echo
Num1>>arch3 $echo
Num1>>arch3 $uniq
arch3

-c
Muestra una cuenta de ocurrencias de las lneas nicas
-u Muestra slo las lneas que no estn repetidas en la entrada -d
Muestra slo las lneas que estn duplicadas en la entrada
$ uniq arch3 c
$ uniq arch3 u
$ uniq arch3 d

grep
Permite buscar cadenas de caracteres en los archivos que le indiquemos. Devuelve toda la
lnea donde encuentra la cadena.
Sintaxis:
grep <patrn> <fichero1> <fichero2> ...<ficheroN>
Donde:
<patrn> es una expresin regular
<fichero1> a <ficheroN>
son los ficheros donde se va a buscar.
Ejemplo:
$ grep Aqp arch3

En el caso de que el elemento que desee buscar se componga de ms de una palabra, ese
elemento debe colocarlo entre comillas dobles.
$ grep hola mundo file3

wc
Esta orden es un contador de lneas, palabras y caracteres de un archivo
-l visualiza el nmero de lneas -w
visualiza el nmero de palabras
-c
visualiza el nmero de caracteres
Ejemplo:
$wc -l arch3

du
Muestra el tamao del archivo
-m para mostrar el tamao en megas
Ejemplo:
$ du arch3

sed
Significa Stream Editor, es decir, un editor de flujos. El comando sed nos va a permitir
editar flujos de datos pasados a travs de una tubera (pipe) por ejemplo. Es muy til para
hacer modificaciones en flujos de datos o ficheros de texto. Estas modificaciones pueden
ser aadir o borrar una lnea, o un conjunto de ellas, buscar y reemplazar patrones.
La sintaxis de sed normalmente es:
sed s/patrn/reemplazo/opcin
pero tambin acepta la siguiente sintaxis:
sed s:patrn:reemplazo:opcin
Ejemplo:
$cat > file1
ucsm
P.P. de Ingeniera de Sistemas ucsm
P.P. de Ingeniera Industrial - ucsm
P.P. de Ingeniera Electrnica ucsm
CTRL+D
$cat file1 | sed s/ucsm/ucsm.edu.pe/g > file1.reemplazado
$cat file1.reemplazado
EXPRESIONES REGULARES
Una expresin regular define el conjunto de una o ms cadenas de caracteres. Varios
comandos de Linux utilizan expresiones regulares para buscar y reemplazar cadenas de
texto, incluidos ed, vi, grep, sed y ls.
Las expresiones regulares son una herramienta para definir patrones de bsqueda y
reemplazo. En ellas se definen lo que llamaremos tomos que sern las partes que
buscaremos. En los patrones podemos hacer referencias a un carcter cualquiera, el
comienzo de lnea, el final de lnea y dems. Para ello utilizamos caracteres reservados
conocidos como wildcards.
Vamos a ver un pequeo ejemplo sobre como usar dos wildcars muy comunes, el de
principio de lnea (^) y el de final de lnea ($).
Por ejemplo, para aadir un texto al comienzo de todas las lneas podemos hacer:
$ cat file1 | sed s/^/Texto al comienzo:/g > file1.nuevo

Lo que hace es reemplazar el comienzo de cada lnea con ese texto. Hemos entrecomillado
la expresin para no tener problemas con el Shell. Es una buena costumbre entrecomillar
las expresiones de sed.
Veamos el mismo ejemplo pero al contrario. Queremos aadir algn texto al final de todas
las lneas de un flujo de datos:
$ cat file1 | sed s/$/Esto se aade al final/g > file2
Cualquier carcter que queremos que sed trate como un literal en lugar de un wildcard, le
aadiremos un \ delante y diremos que lo hemos escapado. Entonces, Cmo decirle a sed
que un \ es un literal y no es el carcter de escape?, pues tenemos que escapar el \ quedando:

Ejemplos:
ls l | grep ^d
Nos muestra solo los directorios de la ubicacin actual.
ls | grep [0-9]$
Nos muestra todos los archivos del directorio actual cuyo nombre termine en un nmero
del cero al 9.

V
EJERCICIOS

Cree dentro de la Carpeta Donwload (descargas) una carpeta llamada UNSA,


UCSM y USP, adicionalmente cree dentro de cada carpeta un archivo con el
nombre de Juan Perez (UNSA), Fulanito Ramirez (UCSM), Pedro Picapiedra
(USP).

Copie la lista de archivos y/o directorios que se han creado anteriormente en su


directorio home.

Empaquete los archivos que hay en el directorio /home. En un archivo llamado


copiahome.tar

Mostrar todo lo que hay en el archivo llamada copiahome.tar sin


desempaquetarlo.

Comprima todos los archivos que hay en /dev con el nombre copiadev.

Comprima todos los archivos que empiezan con la letra a dentro de su usuario en
un archivo llamado comienzaa.tar.gz

Todos los ejercicios siguientes ejectelos desde su home.

Crear redireccionando la salida del comando ls los siguientes archivos en su


directorio home
o Pract01, pract02, pract03, practica, pract01ica, pract02ica, pract03ica

Adicionar al final de practica la salida de date.

Colocar los archivos cuyo nombre empiece con c del directorio /usr/bin en un
archivo llamado binlistado. Utilice redireccionamiento.

Ver los directorios de raz por pginas.

VII
BIBLIOGRAFIA Y REFERENCIAS

Blanco, V., Linux Instalacin, Administracin y uso del Sistema, Ed. Ra-Ma,
Mxico, 2010.

Mgter. Jos Esquicha Tejada, Ing. Jorge Martinez Muoz

Anda mungkin juga menyukai