Está en la página 1de 43

Sistemas Operativos

Comandos bsicos en
Linux
Copyright mayo de 2016 por TECSUP

Objetivos
Objetivos de la clase

Identifica sistemas de archivos y comandos del


sistema operativo para inclusin en programas
realizados en el ambiente de programacin del
intrprete de comandos Bash.

Desarrollo
Comandos LINUX

Todos los comandos de LINUX se ajustan mas o


menos al siguiente formato:

comando [opciones] [argumento]


Opciones hace referencia a las distintas opciones de
aplicacin de dicho comando; van precedidas de un .
Argumento hace referencia al elemento sobre el cual
se va a aplicar el comando (puede ser un archivo, una
variable, un directorio, etc.).

Desarrollo
Comandos LINUX

La mayora de los comandos LINUX de usuario


simple se encuentran en los directorios /bin,
/usr/bin y /usr/local/bin.
Los comandos LINUX son archivos binarios, de
ah el nombre de estos directorios (bin viene de
binary).

Desarrollo
Comandos LINUX de manipulacin de archivos

CAT - Todo lo que hace cat es copiar los


datos desde la entrada estndar (teclado)
hacia la salida estndar(pantalla).
Con el comando cat>archivo la entrada
estndar sigue siendo el teclado, pero la
salida estndar se ha redireccionado hacia un
archivo. Cada lnea que teclee se copiar en
el archivo.

Desarrollo
Comandos LINUX de manipulacin de archivos

Si el archivo no existe, LINUX lo crea por


usted. Si existe, su contenido se reemplaza.
Puede teclear cuantas lneas desee y, al final,
oprimir <CTRL>+<D>.
Si desea anexar datos al final de un archivo
existente, use >> para redireccionar la salida
estndar: cat>>archivo

Desarrollo
Comandos LINUX de manipulacin de archivos

HEAD - El comando head permite desplegar


el comienzo de un archivo. Por defecto, head
despliega las primeros diez lneas de un
archivo.
Si lo que se desea es desplegar un nmero
diferente de lneas, se pueden especificar
como opcin al comando head.

Desarrollo
Comandos LINUX de manipulacin de archivos

Por ejemplo, para desplegar las primeras


veinte lneas de un archivo se puede usar:
head 20 archivo.
TAIL - El comando tail permite desplegar el fin
de un archivo. Por defecto, tail despliega las
ltimos diez lneas de un archivo.
Por ejemplo, tail -15 archivo desplegar las
ltimas 15 lneas del archivo.

Desarrollo
Comandos LINUX de manipulacin de archivos

La opcin -f (follow) de tail, permite escribir la


ltima parte del archivo a medida que va
creciendo. Esta opcin es muy til para
monitorizar archivos de registro log que van
creciendo con el tiempo, a modo de ejemplo,
considere la orden: tail f /var/log/messages,
que permite monitorizar el ARCHIVO DE LOG
/var/log/messages.

Desarrollo
Comandos LINUX de manipulacin de archivos

MORE - Adems de cat, podemos servirnos


de otra orden para visualizar archivos, llamada
more. Este comando visualiza, el o los
archivos indicados, por pantallas completas,
detenindose al final de cada pantalla o cada
vez que se encuentre un caracter de borrado
de pantalla.
Una diferencia con cat es que slo se pueden
visualizar archivos de texto, no binarios.

Desarrollo
Comandos LINUX de manipulacin de archivos

Con more al final de cada pgina desplegada


en pantalla se nos indica que hay ms, por
medio del indicador --More--, y tambin se nos
informa del porcentaje de caracteres que
hemos visualizado. Si en este punto pulsamos
la
<BARRA
ESPACIADORA>,
conseguiremos una nueva pantalla del mismo
archivo, que se imprimir y
volver a
informarnos de la misma manera como lo hizo
anteriormente.

Desarrollo
Comandos LINUX de manipulacin de archivos

El procedimiento antes mencionado lo


podramos repetir hasta llegar al final del
archivo.
Pulsando
la
tecla
<RETORNO>
conseguiremos que se visualice una sola lnea
ms.
CP - Para realizar una copia de un archivo se
utiliza el comando cp.

Desarrollo
Comandos LINUX de manipulacin de archivos

Copiar un archivo consiste en sacar una copia


del mismo pero con otro nombre, o en otro
lugar, es decir, tener dos archivos
exactamente iguales, pero independientes,
cada uno con su nombre y en su propio
directorio.
Por ejemplo, si tenemos un archivo llamado
datos y se desea obtener una copia que lleve
el nombre extra, se usa: cp datos extra.

Desarrollo
Comandos LINUX de manipulacin de archivos

Con cp no solo es posible copiar archivos,


sino que tambin es posible copiar directorios
recursivamente por medio de la opcin -R.
Con la opcin -p se preservan los permisos, el
usuario y el grupo del archivo a copiar.
Con la opcin -f se borran los archivos de
destino ya existentes.

Desarrollo
Comandos LINUX de manipulacin de archivos

Para indicar la ubicacin en disco de un


archivo hay que indicar la lista completa de
directorios que contienen al fichero. Es decir,
un fichero puede estar dentro de un directorio
que a su vez est dentro de otro y as varios.
En esta lista, que denominaremos RUTA DE
ACCESO, cada directorio est separado del
siguiente directorio por el signo / , y sin dejar
espacios en blanco.

Desarrollo
Comandos LINUX de manipulacin de archivos

MV - El comando mv nos va a permitir


cambiar el nombre a un archivo, o moverlo de
un directorio a otro. Por ejemplo, si desea
mover un archivo llamado datos hacia un
directorio llamado trabajo, use: mv datos
trabajo.
si un directorio llamado trabajo no existe,
entonces mv supone que usted quiere
cambiar el nombre del archivo.

Desarrollo
Comandos LINUX de manipulacin de archivos

Con el comando mv se pueden renombrar y


mover no slo archivos, sino tambin
directorios.
RM - Para borrar o eliminar un archivo
tenemos el comando rm. Tras la propia orden
pondremos el o los nombres de los archivos
que deseemos borrar.

Desarrollo
Comandos LINUX de manipulacin de archivos

Si un archivo tiene enlaces y lo borramos, en


realidad habremos borrado uno de sus
enlaces, y no el archivo propiamente tal, pero
suponiendo que el enlace que estemos
borrando sea el ltimo entonces se borrar
tambin el archivo.
Por ejemplo, si deseamos borrar el archivo
llamado datos, usaremos: rm datos.

Desarrollo
Comandos LINUX de manipulacin de archivos

Para borrar un subdirectorio completo


recursivamente use el comando rm con la
opcin -r y especifique el nombre de un
directorio; rm no slo borra el directorio sino
todos sus archivos y subdirectorios.
Por ejemplo, para borrar un directorio llamado
extra, teclee: rm r extra.

Desarrollo
Comandos LINUX de manipulacin de archivos

Con la opcin -f no se imprimen mensajes de


error, ni se pregunta al usuario confirmacin
de cada archivo borrado.
Con la opcin -i (interactive) se pregunta al
usuario por confirmacin del borrado, esto
podra ser til cuando, a modo de ejemplo, se
desea borrar solo algunos de los archivos
cuyos nombres empiezan con a: ls -i a*.

Desarrollo
Comandos LINUX de manipulacin de archivos

Es posible restaurar un archivo previamente


borrado? Resp.: NO.
WC - El comando wc cuenta las lneas,
palabras y caracteres. Los datos pueden
provenir de la entrada estndar o de uno o
ms archivos. Este comando es de accin
inmediata. Genera como salida tres nmeros:
de lneas, palabras y caracteres en los datos.

Desarrollo
Comandos LINUX de manipulacin de archivos

Si usted especifica el nombre de un archivo,


wc escribe el nombre del archivo despus de
los tres nmeros. Si especifica ms de un
archivo, wc tambin proporciona las
estadsticas totales.
Si no quiere los tres nmeros, puede usar las
opciones : -l cuenta las lneas; -w cuenta las
palabras; y c cuenta los caracteres.

Desarrollo
Comandos LINUX de manipulacin de archivos

Por ejemplo, podemos usar el comando wc


para contar el nmero de identificadores de
usuario dentro de su sistema actualmente, por
medio de la orden: who wc l.
LN - El comando ln permite crear un enlace (o
liga) para un archivo. Por ejemplo, si tenemos
un archivo llamado datos y deseamos crear
un enlace para este archivo llamado otro,
usaremos : ln datos otro.

Desarrollo
Comandos LINUX de manipulacin de archivos

La opcin -s permite crear un ENLACE


SIMBLICO de un archivo.
Cuando se ejecuta ls -l en un directorio donde
hay un ENLACE SIMBLICO, ste se nota de
la siguiente manera:
[alumno@localhost ~]$ ln s archivo enlace
[alumno@localhost ~]$ ls l enlace
lrw-r--r-- 1 alumno alumno 11 Apr 8 13:33 enlace ->archivo

Desarrollo
Comandos LINUX de manipulacin de archivos

SORT - El comando sort efecta dos tareas


principales. Primera, y como es de esperar,
ordena datos. sort es muy til para ordenar
archivos de datos y para ordenar los datos
dentro de una interconexin de procesos.
Segunda: sort lee archivos con datos
previamente ordenados y los fusiona para
formar un archivo grande y ordenado.

Desarrollo
Comandos LINUX de manipulacin de archivos

La manera ms sencilla de usar sort consiste en


ordenar un solo archivo y desplegar el resultado
en pantalla, por ejemplo: sort datos.
Para guardar los datos ya ordenados en otro
archivo, puede redireccionar la salida estndar y
usar: sort datos>maestro.
Para ordenar un archivo y guardar la salida en el
mismo archivo, usar: sort o datos datos.

Desarrollo
Comandos LINUX de manipulacin de archivos

De manera preestablecida, los datos se


acomodan en orden ascendente, de acuerdo
con el cdigo ASCII. Lo relevante es que el
cdigo ASCII es como el alfabeto que usted
usa, pues los caracteres guardan cierto orden,
orden
que
usa
sort
para
hacer
comparaciones.
El comando sort tiene varias opciones que
puede usar para modificar el orden que desea
emplear.

Desarrollo
Comandos LINUX de manipulacin de archivos

Por ejemplo, La opcin d slo toma en


cuenta letras, nmeros y espacios, ignorando
los dems caracteres; la opcin r ordena los
datos de manera inversa.
Adems de ordenar los datos, sort tambin
fusiona archivos mltiples que contengan
datos ordenados. Para usar sort de este
modo, especifique la opcin m.

Desarrollo
Comandos LINUX de manipulacin de archivos

CUT - El comando cut extrae columnas de


datos de un archivo. Este comando ofrece una
gran flexibilidad. Puede extraer columnas
especficas o fragmentos delimitados de cada
lnea del archivo.
cut requiere la lista de columnas que usted
desea extraer y el nombre de un archivo de
entrada.

Desarrollo
Comandos LINUX de manipulacin de archivos

Por ejemplo, para extraer las columnas 1, 8 y


10 del archivo llamado datos, se puede usar:
cut c1,8,10 datos
Tambin puede especificar un rango de
nmeros de columna colocando el comienzo y
el final del rango.
Por ejemplo, para extraer las columnas de la 1
a la 3 del archivo datos, use: cut c1-3 datos.

Desarrollo
Comandos LINUX de manipulacin de archivos

PASTE El comando PASTE fusiona lneas


correspondientes de un archivo en columnas
verticales e imprime al resultado a pantalla. Un
ejemplo de uso de PASTE sera: paste arch1
arch2.
Si uno de los archivos tiene menos lneas que
el otro, el comando PASTE concatenar las
lneas con el archivo ms largo con una lnea
en blanco.

Desarrollo
Comandos LINUX de manipulacin de archivos

El comando PASTE toma lneas desde dos o


ms archivos y los coloca en columnas y los
presenta en la salida estndar o pantalla.
El delimitador por defecto en la salida ser el
tabulador, con la opcin -d se puede
especificar un delimitador diferente. Por
ejemplo, podemos usar: paste -d: nombres
apellidos>datos.

Desarrollo
Comandos LINUX de manipulacin de archivos

Se pueden separar columnas con diferentes


caracteres solo con especificar ms de un
carcter despus de la opcin -d, por ejemplo:
paste -d -* arch1 arch2, separara la primera
de la segunda columna con un - y la
segunda de la tercera columna con un *.
Si ms de una columna existe, el comando
paste alternara usando - y * como
delimitador.

Desarrollo
Comandos LINUX de manipulacin de archivos

La opcin -s de PASTE permite fusionar todas


las lneas de cada archivo en una nica lnea.
Cada \n en un archivo, excepto el ltimo, es
reemplazado con un tabulador o un
delimitador especificado por la opcin d. Por
ejemplo, paste s d * nombres, fusiona
todas las lneas del archivo nombres en una
lnea usando * como delimitador.

Desarrollo
Comandos LINUX de manipulacin de archivos

FILE - El comando file realiza una serie de


comprobaciones en un archivo para tratar de
clasificarlo.
Tras la ejecucin de find se muestra el tipo
del archivo e informacin al respecto del
mismo.
[alumno@localhost ~]$ file tarea
tarea: is a directory

Desarrollo
Comandos LINUX de manipulacin de archivos

STAT - El comando stat nos muestra


informacin muy completa acerca de archivos
o SISTEMAS DE ARCHIVOS.
Este comando nos reporta el nombre del
archivo, su tamao, los bloques que ocupa, el
tipo de archivo (regular), informacin fsica de
donde se encuentra (dispositivo/i-node), los
permisos estndar, los dueos del archivo y
las tres marcas de tiempo UNIX.

Desarrollo
Comandos LINUX de manipulacin de archivos
[alumno@localhost ~]$ stat archivo
File: `archivo'
Size: 93300148 Blocks: 182424 IO Block: 4096 Regular File
Device: 804h/2052d Inode: 1785294 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000) Gid: ( 100/ users)
Access: 2008-04-03 18:45:29.000000000 +0200
Modify: 2008-01-30 17:56:08.000000000 +0100
Change: 2008-03-04 23:32:02.000000000 +0100

Desarrollo
Comandos LINUX de manipulacin de archivos

Una parte importante acerca de la informacin


desplegada por stat, tiene que ver con la
informacin de la fecha de registro del acceso
al archivo. Muestra que se accedi (Access)
al archivo el 2008-04-03 a las 18:45:29, o el 3
de abril de 2008 a las 18:45:29 PM. Este es el
momento en el cual se empez a utilizar el
archivo. El archivo fue modificado (Modify) el
2008-01-30 a las 23:32:02.

Desarrollo
Comandos LINUX de manipulacin de archivos

Finalmente, la fecha de registro al lado de


Cambiar (Change) muestra cundo fue
cambiado el estado del archivo.
Adems del tamao de archivo usual (que se
puede obtener de ls -l), se puede obtener la
cantidad de bloques que ocupa este archivo.

Desarrollo
Comandos LINUX de manipulacin de archivos

El tamao de bloque LINUX tpico es de 512


bytes, entonces un archivo de 93.300.148
bytes ocupara (93300148/512=) 182226.85
bloques. Como los bloques se utilizan en su
totalidad, este archivo utiliza un nmero entero
de bloques. En lugar de hacer conjeturas,
usted puede saber cules son los bloques
exactos.

Desarrollo
Comandos LINUX de manipulacin de archivos

La opcin -f del comando stat permite mostrar


la informacin de un SISTEMA DE ARCHIVO
en lugar de un archivo:
[alumno@localhost ~]$ stat -f oracle
File: "oracle"
ID:
0
Namelen: 255
Type:
ext2/ext3
Blocks: Total: 24033242 Free: 15419301 Available: 14198462 Size: 4096
Inodes: Total: 12222464 Free: 12093976

Desarrollo
Comandos LINUX de manipulacin de archivos

Por ltimo, la opcin -t brinda exactamente la


misma informacin pero en una sola lnea, con
los datos separados por un espacio.

Resumen
Los comandos LINUX de manipulacin de archivos calzan, mas o menos, con el
siguiente formato: comando [opciones] [argumentos].
Comando es el nombre del comando u orden que el SHELL debe ejecutar,
opciones especificar la o las opciones del comando y argumentos corresponde
a el o los elementos (archivos) sobre los cuales se aplicar el comando.
Podemos distinguir: comandos de visualizacin de archivos: cat, more, less,
comando para copiar archivos: cp, comando para borrar archivos: rm, comandos
filtros: head, tail, cut, sort, entre otros.
El comando sort efecta dos tareas principales: ordenamiento de datos y fusin
de dos o ms archivos ordenados.