Sunteți pe pagina 1din 14

3.

Comandos UNIX
Hay ms de 300 comandos UNIX distintos. Vamos a estudiar por encima las caractersticas de unos cuantos, los suficientes como para poder hacer pequeos programas. Aunque los nombres de los comandos siguen una lgica, muchas veces esta se ha perdido con el tiempo. En consecuencia tenemos muchos comandos que no sabemos lo que hacen y, por lo tanto, no los utilizamos. No hay que saber como funcionan todos los comandos, pero s es interesante conocerlos y ms o menos saber que hacen. Para un uso ms en profundidad consultaremos la pgina del manual.
ls muestra el contenido de un directorio echo hace eco en pantalla Ejemplo: $ echo hola mundo! cat muestra el contenido de un fichero more muestra el contenido de un fichero haciendo pausas entre pantallas si el fichero es largo man muestra la pgina del manual de un comando Ejemplo: $ man ls clear borra la pantalla cp copia ficheros y directorios Ejemplo: $ cp fichero_original fichero_copia mv mueve ficheros Ejemplo: $ mv fichero fichero2 rm borra ficheros

Ejemplo: $ rm fichero ln enlazar (referenciar) ficheros Ejemplo de enlace "duro" (hardlink): $ ln fichero enlace Ejemplo de enlace "suave" (softlink): $ ln -s fichero enlace_simblico cd cambia de directorio de trabajo si no se indica directorio, nos traslada a $HOME Ejemplo: $ cd directorio pwd muestra el directorio de trabajo actual mkdir crea directorios Ejemplo: $ mkdir directorio rmdir borra directorios (vacos) Ejemplo: $ rmdir directorio env muestra las variables de entorno del programa head muestra las n primeras lineas de un fichero (10 por defecto) Ejemplo: $ head fichero tail muestra las n ltimas lineas de un fichero (10 por defecto) Ejemplo: $ tail fichero grep busca ocurrencias de una cadena en un fichero

Ejemplo: $ grep cadena fichero ps muestra los procesos en el sistema kill Enva una seal a un proceso indicando su PID (Process IDentifier, o nmero nico que identifica a cada proceso) Ejemplo: $ kill 1002 export Exporta una variable al entorno del programa Ejemplo: $ export VARIABLE=valor read Lee una linea de la entrada estndar y la almacena en una variable Ejemplo: $ read linea $ Delante de una variable permite acceder a su contenido Ejemplo: $ echo $SHELL ; Separa dos comandos en una misma linea Ejemplo: $ read linea ; echo se ha ledo: $linea file indica de qu tipo es un fichero cal muestra el calendario del mes actual wc cuenta lineas, palabras o bytes en ficheros Ejemplo: $ echo hola que tal | wc date muestra hora y fecha actuales Ejemplo:

$ date Ejemplo de fecha en formato yyyy-mm-dd: $ date "+%Y-%m-%d" passwd cambia la contrasea de un usuario chmod cambia los permisos de un fichero chown cambia el propietario de un fichero chgrp cambia el grupo propietario de un fichero reset restaura la terminal de texto whereis indica donde se puede encontrar un fuente, binario o manual Ejemplo: $ whereis ls which indica donde est un comando Ejemplo: $ which ls locate busca ficheros find bsqueda avanzada de ficheros who quin tiene sesin abierta en la mquina tac concatena ficheros y los muestra a la inversa touch actualiza la fecha y hora de un fichero, si no existe lo crea Ejemplo: $ touch fichero_inexistente less una versin ms elaborada de more que permite desplazarnos por el texto, hacer bsquedas, etc. df muestra el espacio libre y ocupados de los discos

du calcula el espacio de disco usado mail programa simple para enviar y leer correo tar empaquetar ficheros Ejemplo empaquetar: $ tar cvf fichero.tar directorio Ejemplo desempaquetar: $ tar xvf fichero.tar gzip comprimir un fichero gunzip descomprimir un fichero comprimido con gzip zcat muestra el contenido de un fichero comprimido con gzip ldd muestra las libreras que usa un programa halt apaga la mquina reboot reinicia la mquina shutdown apaga o reinicia la mquina true cierto, o uno false falso, o cero exit termina la sesin y muestra el login del sistema logout termina la sesin y muestra el login del sistema seq genera una secuencia de nmeros Ejemplo: $ seq 1 10 cut elimina partes de ficheros Ejemplo:

$ echo hola que tal | cut -d " " -f 2 awk escner de patrones y lenguaje de programacin para procesar textos Ejemplo: $ echo hola que tal | awk '{ print $1 "!", tr elimina o traduce caracteres Ejemplo: $ echo hola que tal | tr a A sed realiza transformaciones en flujos de bytes Ejemplo: $ echo hola que tal | sed 's/a/A/g' (substituye las 'a' por 'A' en todo el flujo) fmt da formato a cada prrafo de un fichero sort ordena ficheros de texto sleep detiene el proceso durante n segundos Ejemplo: $ sleep 5 ; echo Han pasado 5 segundos uniq lee de stdin y compara lineas adyacentes escribiendo las lineas nicas a stdout $2, $3 "?" }'

Filtros.
sort grep

find fgrep y egrep tr uniq dd Preguntas y Ejercicios Bibliografa y Referencias Se da el nombe de filtros a un grupo de comandos que leen alguna entrada, realizan una transformacin y escriben una salida. Adems de los que veremos aqu, incluye comandos tales como head, tail, wc, y cut. sort La comparacin u ordenacin puede ser por caracteres ASCII o por valor numrico. La ordenacin ASCII es la ms parecida a la alfabtica; sigue el orden del juego de caracteres ASCII. En este ordenamiento, los caracteres idiomticos (vocales acentuadas, ) no se encuentran en el orden alfabtico tradicional. En la ordenacin numrica se respeta la ordenacin por valor numrico de la cadena de caracteres: 101 va despus de 21; en ordenamiento ASCII sera al revs.
sort arch1

ordena segn el cdigo ASCII.


sort -n arch2.num

ordena numricamente. Si no se indican campos de ordenacin, la comparacin se hace sobre toda la lnea. Si se indican campos, la comparacin se hace considerando la cadena de caracteres iniciada en el primer caracter del primer campo hasta el ltimo caracter del ltimo campo.
sort -t: -k1,3 arch1.txt

ordena por campos separados por ":", tomando en cuenta para la comparacin los caracteres desde el primero del campo 1 hasta el ltimo del campo 3.
sort -t: -k1.3,3.5 arch1.txt

ordena por campos tomando en cuenta desde el 3er. caracter del campo 1 hasta el 5to. caracter del campo 3.
sort -nr arch2.num

ordena en orden numrico descendente.

sort -k3 arch3.txt

ordena alfabticamente, usando como cadena de comparacin la comprendida desde el primer caracter del 3er. campo hasta el fin de lna. Como no se indica separador, los campos se definen por blancos (espacio o tabulador). find El comando find explora una rama de directorios buscando archivos que cumplan determinados criterios. El comando find en GNU es extremadamente potente, permitiendo criterios de bsqueda tales como:

el nombre contiene cierta cadena de caracteres o aparea con algn patrn: son enlaces a ciertos archivos; fueron usados por ltima vez en un cierto perodo de tiempo; tienen un tamao comprendido dentro de cierto intervalo; son de cierto tipo (regular, directorio, enlace simblico, etc.); pertenecen a cierto usuario o grupo; tienen ciertos permisos de acceso; contienen texto que aparea con cierto patrn.

Una vez ubicados los archivos, find puede realizar diversas acciones sobre ellos:

ver o editar; guardar sus nombres en otro archivo; eliminarlos o renombrarlos; cambiar sus permisos de acceso; clasificarlos por grupos.

find /var -name *.log -print

busca en el directorio /var los archivos terminados en .log, imprime sus nombres en la salida.
find /tmp -size +200k -print

busca archivos mayores de 200k. En los argumentos numricos, +N es mayor que N, -N es menor que N, N es exactamente igual a N.
find /var/spool/mail -atime +30 -print

busca archivos no accedidos hace ms de 30 das. La opcin -atime se refiere a tiempo transcurrido desde ltima lectura, -mtime desde ltima modificacin de estado o permisos, ctime de contenido.
find /var/tmp -empty -exec rm {} \;

busca archivos vacos y los borra.


find /home -nouser -ls

busca archivos en los cuales en lugar del nombre de usuario dueo aparece un nmero (UID). Esta situacin se da cuando la cuenta de usuario ha sido borrada pero han permanecido los archivos creados por ese usuario.

grep El comando grep (Global Regular Expression and Print) permite buscar las lneas que contienen una cadena de caracteres especificada mediante una expresin regular. Lee la entrada estndar o una lista de archivos y muestra en la salida slo aquellas lneas que contienen la expresin indicada. La sintaxis es
grep patrn archivos

donde el patrn a buscar es una expresin regular. Crear un archivo con los das de la semana, uno por lnea; llamarle dias.
grep martes dias grep tes dias

muestra las lneas del archivo dias que contienen la cadena "tes".

grep unix01 /etc/passwd grep unix0[1-9] /etc/passwd

ls -l /usr | grep '^d'

lista slo los subdirectorios del directorio /usr (la lnea empieza con "d").

ls -l / | grep '.......rw'

lista slo los archivos que otros pueden leer y escribir en el directorio principal.

grep '^[^:]*::' /etc/passwd

busca usuarios sin contrasea; caracteres al principio de lnea que no sean ":", y luego "::" (el segundo lugar, que es el de la contrasea, est vaco).

grep '^[^:]*:\*:' /etc/passwd

busca usuarios que no pueden entrar al sistema; tienen un * en el lugar de la contrasea; \ escapa el significado del segundo *, que vale como caracter a buscar.

Ninguna expresin regular de grep aparea con un caracter nueva lnea; las expresiones se aplican individualmente a cada lnea.

Entre las opciones de grep se cuentan -i para evitar distinguir entre maysculas de minsculas, -n para mostrar el nmero de lnea y -v para buscar lneas que no contengan la expresin regular indicada.
fgrep y egrep Hay dos versiones de grep que optimizan la bsqueda en casos particulares:
fgrep

(fixed grep, o fast grep) acepta solamente una cadena de caracteres, y no una expresin regular, aunque permite buscar varias de estas cadenas simultneamente;
egrep

(extended grep), que acepta expresiones regulares extendidas con los operadores + ? | y parntesis.
fgrep

no interpreta metacaracteres, pero puede buscar muy eficientemente muchas palabras en paralelo, por lo que se usa mucho en bsquedas bibliogrficas; egrep acepta expresiones ms complejas, pero es ms lento; grep es un buen compromiso entre ambos.
fgrep martes dias

busca la cadena martes en el archivo dias.

En fgrep y egrep puede indicarse la opcin -f buscar.exp, donde buscar.exp es un archivo que contiene la expresin a buscar: cadenas simples para fgrep, expresiones regulares para egrep, separadas por nueva lnea; las expresiones se buscan en paralelo, es decir que la salida sern todas las lneas que contengan una cualquiera de las expresiones a buscar. Crear un archivo buscar.fgrep con las cadenas "tes" y "jue", una por lnea. El comando
fgrep -f buscar.fgrep dias

extrae del archivo dias las lneas que contienen estas cadenas.

El comando grep soporta fgrep y egrep como opciones -F y -E, respectivamente.


grep -F -f buscar.fgrep dias egrep "tes|jue" dias grep -E "tes|jue" dias

obtienen el mismo efecto del comando anterior.


egrep "([0-9]+ab)*1234" archivo

busca cadenas comenzadas opcionalmente por un dgito y los caracteres ab, todo el parntesis 0 o ms veces, y hasta encontrar la cadena 1234.

Escribir grep -E es similar a egrep, aunque no idntico; egrep es compatible con el comando histrico egrep; grep -E acepta expresiones regulares extendidas y es la versin moderna del comando en GNU. fgrep es idntico a grep -F. tr El comando tr translitera los caracteres de la entrada: sustituye unos caracteres por otros. La sustitucin es caracter a caracter. Entre sus opciones se encuentran -d para borrar caracteres; c para sustituir complemento de los caracteres indicados, es decir, que no sean sos; y -s para comprimir caracteres repetidos en uno solo.
cat dias | tr a-z A-Z

convierte todo a maysculas.


cat dias | tr -d aeiou

borra todas las vocales del archivo dias.

Agregar al archivo dias lneas en blanco, varias seguidas, intercaladas entre los nombres de los das.
cat dias cat dias | tr -s "\n*"

convierte varios caracteres nueva lnea seguidos en una solo; elimina renglones en blanco.

cat nota | tr -c "[a-zA-Z0-9]" "_"

transforma todos los caracteres que no sean letras o nmeros en subrayas.


cat nota | tr -cs "[a-zA-Z0-9]" "[\n*]"

transforma todos los caracteres que no sean letras o nmeros en nuevalnea, y comprime las nuevalneas repetidas en una sola; deja cada palabra sola en un rengln.

ls -l /usr | tr -s " " | cut -f3,4

comprime los blancos en la salida para poder cortar campos. uniq El comando uniq excluye todos los renglones adyacentes duplicados menos uno; es decir, elimina renglones repetidos consecutivos. La opcin -c escribe el nmero de ocurrencias al comienzo del rengln. El siguiente ejemplo muestra las 5 palabras ms frecuentes en el conjunto de archivos:

cat *.txt | tr -sc A-Za-z '\012' | \ sort | uniq -c | sort -n | tail 5 cat lista todos los archivos, tr comprime el rengln eliminando blancos, sort los ordena, uniq cuenta las ocurrencias y elimina repetidos, sort -n ordena por cantidad de ocurrencias

y tail muestra las 5 ocurrencias ms frecuentes. dd El comando dd es un convertidor de datos: convierte de ASCII a EBCDIC y a la inversa, cambia los tamaos de los bloques de registros, hace ajuste de blancos y otras transformaciones usuales cuando se manejan transferencias entre sistemas operativos distintos o datos en bruto, sin formato, como en los respaldos en cinta. Preguntas y Ejercicios. Bibliografa y Referencias. Comandos: sort, find, grep, fgrep, egrep, tr, uniq, dd Referencias: pginas man, nodos info, Kernighan-Pike[1987], Coffin[1989].

http://webcache.googleusercontent.com/search?hl=es&rlz=1T4SKPT_esVE416VE417&spell=1 &q=cache:lKrXsTtseXAJ:http://iie.fing.edu.uy/~vagonbar/unixbas/filtros.htm+uso+del+tail+gre p+unix+pai&ct=clnk

Una toma de contacto MUY RPIDA con Linux


Toma de contacto vlida para aquellos usuarios con conocimientos de DOS

Comando del DOS HELP COPY MOVE man cp mv

Comando Linux/Unix

DESCRIPCIN

# Pedir ayuda # Copiar ficheros # Mover ficheros/directorios # Salida caracteres pantalla

ECHO

echo

MKDIR RMDIR DIR

mkdir rmdir ls

# Crear directorio # Borrar directorio # Listar directorio/ficheros # Cambiar de directorio # Asignar modos al ficheros # Borrar ficheros # Borrar recursivamente # Leer contenido del fichero # Salir de script/sesin/bucle # Recuperar ficheros borrados # Llamar a un nombre con modificadores por su alias, por el que le asignemos, etc.

CD

cd

ATTRIB DEL DELTREE

chmod rm rm -r

TYPE

cat

EXIT

exit (Aplicacin MC opcin UNDELETE)

UNDELETE

(No alias Aplicable)

Procesos por Lotes ".BAT" DIR (fichero) /S

Scripts

find -name fichero find -iname FiChErO

# Buscar ficheros

grep -e "cadena de algn # Buscar cadena en (DOS n/a) fichero" ficheros nombre_fichero.txt (DOS n/a) strings "cadena de algn # Buscar cadena en

fichero" fichero.txt (DOS n/a) halt (apagar/detener equipo)

ficheros # Detener el sistema. # Reiniciar el sistema # Imprimir

(DOS n/a) reboot (reiniciar equipo) PRINT DOS (n/a) ipconfig winipcfg ping lpr

lprm (limpiar trabajos de # Borrar trabajos de la cola de impresin) cola de impresin. ifconfig (Configuracin IP) # Ver IP ifconfig ping (Comprobar # Mandar paquetes IP paquetes/comunicacin)

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