Tuesday, October 03, 2006

Lista de Comandos
El comando nice: Prioridad de los procesos.

Lo más común es tener muchos procesos a la vez ejecutándose en nuestra máquina. Pero no todos son igual de importantes. Por ejemplo, si estamos grabando un CD, este debería ser un proceso más importante que el resto, porque si el disco duro no envía los datos a la velocidad suficiente a la grabadora, perderemos nuestro disco grabable. Así que le diremos al kernel: "si el procesador no puede con todo, lo último que debes retrasar es la grabación del CD". Podríamos notar que el resto de aplicaciones van más lentas, pero eso nos garantizaría en una mayor medida que la grabación no va a ser interrumpida.

La forma de conseguir esto es, ejecutando desde el principio el comando interesado mediante nice, o bien, conseguir su PID si ya se está ejecutando y usar renice para cambiar su prioridad.

Algunos ejemplos:

$ nice -n PRIORIDAD COMANDO
$ renice PRIORIDAD PID_PROCESO

· nice -10 named : Esto bajaría la prioridad de named en 10 unidades.(Si estaba en -10, pasará a -20).
· nice +10 named : Esto incrementaría la prioridad de named en 10 unidades.(Si estaba en 0, pasaría a +10).

PRIORIDAD es un valor que va desde -20 a +20 (con el signo incluido). -20 es la prioridad más alta (al contrario de lo que cabría pensar), y +20 la más baja. Sólo root puede establecer un proceso a una prioridad negativa, los usuarios como máximo pueden poner un proceso en prioridad 0.

COMANDO es el comando que queremos ejecutar (sólo aplicable con nice), el mismo comando que ejecutaríamos normalmente con todos sus parámetros y opciones.

PROCESO (sólo aplicable con renice) cambia la prioridad del proceso cuyo PID es PID_PROCESO al nuevo valor indicado.


EL EMPAQUETADOR UNIVERSAL: TAR

El comando tar es utilizado normalmente para empaquetar o desempaquetar ficheros, empaquetar significa guardar en un único fichero una lista de varios ficheros, o el contenido de todo un directorio (o varios directorios). El formato del comando tar es:
tar [opciones] [fichero1][fichero2]...[ficheroN]
Donde N es la lista de opciones
En las opciones de tar hay algunas que son importantes para su uso :


· c: Crea un nuevo archivo tar.
· v: Modo verbose, quiere decir que mostrar por pantalla las operaciones que va realizando archivo por archivo, si no se pone esta opcion a ejecutar la accion pero en pantalla no veremos el proceso.
· x: Extrae los archivos (Descomprime los ficheros que se encuentran dentro del archivo tar).
· t: Nos muestra el contenido del archivo tar. Esto es cuando tu deseas saber que es lo que contiene ese archivo sin necesidad de desempaquetarlo.
· p: Mantiene los permisos originales de los archivos.
· f: Cuando se usa con la opcion -c, usa el nombre del archivo especificado para la creacion del archivo tar; cuando se usa con la opcion -x, retira del archivo el archivo especifico.
· z: Comprime el archivo tar con gzip.
· j: Comprime el archivo tar con bzip2.


Aqui algunos ejemplos :

$ tar cvf archivo.tar /etc

Empaquetar・todos los ficheros de /etc en el fichero archivo.tar c le dice a tar que cree un nuevo fichero de archivo. La opcion v fuerza a tar en el modo verbose, (osea mostrando en pantalla el progreso de la tarea que realiza, en este caso los nombres de los ficheros segun se archivan).
La opcion f le dice a tar que el siguiente argumento archivo.tar es el nombre del archivo a crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a añadir al archivo.

$ tar xvf archivo.tar

Extraer el fichero archivo.tar en el directorio actual.
Una de las ventajas que nos ofrece tar es que respeta la estructura de directorio existente en el momento de empaquetar, de forma que al desempaquetar se reproducir como estaba originalmente.

Ten en cuenta que hasta ahorita solo hemos empaquetado, mas no comprimido.
Para poder empaquetar y comprimir se usa el siguiente comando :

$ tar czvf archivo.tar.gz /etc

Si queremos descomprimir igual que en la linea que desempaquetamos, solo que ahora cambiamos la c por la x de extraccion :

$tar xzvf archivo.tar.gz

Hay otro modo de compresion que es el formato bz2. Para comprimir y descomprimir es el mismo procedimiento que con gz, la 佖ica diferencia es que ya no va la letra z, sino la j.
Ejemplo :
Para poder empaquetar y comprimir se usa el siguiente comando :

$ tar cjvf archivo.tar.bz2 /etc

Si queremos descomprimir, las opciones son muy similares a la orden anterior, solo que ahora le cambiamos la c por la x de extraccion :

$tar xjvf archivo.tar.gz


El comando grep

Su funcionalidad es la de escribir en salida estándar aquellas líneas que concuerden con un patrón. Su sintaxis es como sigue:

grep [opciones] PATRÓN [ARCHIVO...]
grep [opciones] [-e PATRÓN -f ARCHIVO] [ARCHIVO...]


Este comando realiza una búsqueda en los ARCHIVOs (o en la entrada estándar, si no se especifica ninguno) para encontrar líneas que concuerden con PATRÓN. Por defecto grep imprime en pantalla dichas líneas. Sus opciones más interesantes son:

-c
Modificar la salida normal del programa, en lugar de imprimir por salida estándar las líneas coincidentes, imprime la cantidad de líneas que coincidieron en cada archivo.

-e PATRÓN
Usar PATRÓN como el patrón de búsqueda, muy útil para proteger aquellos patrones de búsqueda que comienzan con el signo «-».

-f ARCHIVO
Obtenee los patrones del archivo ARCHIVO

-H
Imprimir el nombre del archivo con cada coincidencia.

-r
Buscar recursivamente dentro de todos los subdirectorios del directorio actual.

El patrón de búsqueda normalmente es una palabra o una parte de una palabra. También se pueden utilizar expresiones regulares, para realizar búsquedas más flexibles.

Ejemplo. Algunos ejemplos simples con el comando grep

Si se quisiera buscar la ocurrencia de todas las palabras que comiencen con «a» minúscula, la ejecución del comando sería algo así:

$ grep 'a*' archivo

También se pueden aprovechar las tuberías para realizar filtros, lo anterior es equivalente a:

$ cat archivo grep 'a*'


El comando tail

El comando tail es al head como el less es al more. El comando tail escribe a la salida estándar la última parte de un archivo. Su sintaxis es:

tail [opción...] [archivo...]

Al igual que head, si no se le proporciona un argumento archivo, este comando tomará su entrada desde la entrada estándar. Alguna de sus opciones son las siguientes:

-c N
Escribe los últimos N bytes.

-n N
Escribe las últimas N líneas.

-f
Escribir la última parte del archivo a medida que va creciendo. Esta opción es muy útil para monitorear archivos de registro que van creciendo con el tiempo.

Ejemplo. Ejemplo del uso del comando tail

Un uso muy común de tail es utilizarlo para inspeccionar logs (o bitácoras) del sistema.

$ tail -n 10 /var/log/messages

mostrará las ultimas 10 líneas del log messages.

En el caso que se quiera tener un seguimiento de un log en especial se puede utilizar la opción -f

$ tail -n 10 -f /var/log/messages

mostrará las ultimas 10 líneas del log messages. Y luego quedará a la espera de nuevas líneas por aparecer en el final del archivo.

El comando head

Escribe por salida estándar la primera parte de un archivo. Su sintaxis es como sigue:

head [opción...] [archivo...]

Si no se especifica el argumento archivo, este comando tomará su entrada de la entrada estándar. La lista de opciones más importantes sigue a continuación:

-c N
Escribe los primeros N bytes.

-n N
Escribe las primeras N líneas en vez de las primeras 10 (que es el valor predeterminado).
DIFF
busca diferencias entre dos archivos

SINOPSIS
diff [opciones] archivo-origen archivo-destino

DESCRIPCIÓN

diff compara los contenidos de los dos archivos, archivo-origen y archivo-destino.

A continuación se presenta la mayoría de las opciones que diff tiene.

-líneas
Muestra líneas (un entero) líneas de contexto. Esta opción no especifica por sí misma un formato de salida; no tiene efecto si no se combina con -c o -u. Esta opción está obsoleta. Para una operación correcta, patch necesita típicamente al menos dos líneas de contexto.
-a
Trata todos los archivos como de texto y los compara línea por línea, incluso si no parecen ser de texto.
-b
Hace caso omiso de cambios referentes a la cantidad de espacio en blanco.
-B
No hace caso de cambios consistentes en sólo insertar o borrar líneas en blanco.
--brief
Informa solamente de si los archivos difieren, no acerca de los detalles de las diferencias.
-c
Emplea el formato de salida de contexto.

-f
Construye una salida que se parece vagamente a un guión del editor ed pero tiene cambios en el orden en que aparecen en el archivo.
-F expreg
En formatos de contexto y unificado, para cada pedazo de diferencias, muestra algo de la última línea precedente que concuerde con la expresión regular expreg.
--forward-ed
Construye una salida que se parece vagamente a un guión del editor ed pero tiene cambios en el orden en que aparecen en el archivo.
-n
Muestra en la salida diferencias en formato RCS; como -f excepto en que cada orden especifica el número de líneas afectadas.
-N

--new-file
En comparaciones de directorio, si se encuentra un archivo en solamente un directorio, lo trata como presente pero vacío en el otro.
Cuando compara directorios, comienza con el archivo archivo. Esto se usa para reanudar una comparación interrumpida.
--sdiff-merge-assist
Muestra información extra para ayudar a sdiff. sdiff emplea esta opción cuando ejecuta diff. Esta opción no está pensada para que los usuarios la empleen directamente.
--show-c-function
Muestra en qué función de C está cada cambio.
--show-function-line=expreg
En formatos de contexto y unificado, para cada trozo de diferencias, muestra algo de la última línea precedente que concuerde con la expresión regular expreg.
--side-by-side
Emplea el formato de salida lado a lado.
--speed-large-files
Emplea una heurística para agilizar el tratamiento de archivos grandes que tienen numerosos pequeños cambios dispersos.
--starting-file=archivo
Cuando compara directorios, empieza con el archivo archivo. Esto se emplea para reanudar una comparación interrumpida.
--suppress-common-lines
No muestra líneas comunes en formato lado a lado.
-t
Expande tabuladores a espacios en la salida, para preservar el alineamiento de tabuladores en los archivos de entrada.
-T
Muestra en la salida un tabulador en vez de un espacio antes del texto de una línea en formato normal o de contexto. Esto hace que la alineación de tabuladores en la línea se vea de forma normal.
-v

--version
Muestra en la salida el número de versión de diff.
-w
Descarta espacio en blanco cuando compara líneas.
-W columnas

--width=columnas
Emplea una anchura de salida de columnas en el formato de lado a lado.
-x patrón
Cuando compara directorios, descarta archivos y subdirectorios cuyos nombres base concuerden con patrón.
-X archivo
Cuando compara directorios, descarta archivos y subdirectorios cuyos nombres base concuerden con cualquier patrón contenido en archivo.
-y
Emplea el formato de lado a lado.
tsort

Realiza una ordenación topológica. Escribe una lista totalmente ordenada de acuerdo con el orden parcial del fichero especificado.

tsort [OPCION] [ARCHIVO]
Gzip

Gzip se complementa con el comando gunzip que lo que hace es descomprimir archivos comprmidos con gzip Ahora para descomprimirlo habría que hacer lo siguiente: gzip -d documento.gz O también: gunzip documento.gz Esto descomprimiría el archivo documento.gz y crearía el archivo documento. Gzip además posee más opciones como las siguientes, algunas de ellas son aplicables también al comando gunzip: -d
Descomprime un archivo comprimido con gzip.
-l
Muestra información sobre el archivo comprimido que le pasemos como parametro.
-r
A esta opción se le pasa como parametro un directorio. Gzip navegara por ese directorio de forma recursiva y comprimira todos los archivos que encuentre dentro de la estructura de directorios.
-t
Comprueba que un archivo comprimido con gzip este correcto. Si se encuentra bien no muestra ningún error y si lo encuentra nos informa de cual es el problema.
-v
Muestra el nombre y el porcentaje de reducción por cada fichero comprimido o descomprimido.. Si queremos comprimir un archivo con gzip lo haríamos de la siguiente forma: gzip documento Esto crearía el archivo documento.gz. El archivo documento desaparece y se crea documento.gz que es el archivo comprimido.
cron

El comando 'cron' permiten ejecutar periódicamente una serie de tareas que estarán programadas en unos ficheros especiales.

La planificación de tareas para usuarios no se hace directamente sino pasando un fichero a 'crontab' o editándolo directamente con 'crontab -e'. Esto generará un fichero en /var/spool/cron/crontabs/ Para verificar el contenido del fichero crontab de un usuario basta con usar 'crontab -l' y para eliminarlo 'crontab -r'.

Poner siempre como mínimo 2 minutos más al actual para probar ya que en caso contrario puede no funcionar.

El formato consiste en una serie de lineas con el formato siguiente:

minuto hora día_del_mes mes día_de_la_semana
fsck

En los sistemas UNIX se ofrece el comando 'fsck' (que a su vez es una liga a e2fsck)para reparar el sistema de archivos dañado. En Linux el comando tiene la siguiente sintaxis:

# fsck [-A] [-V] [-t fs-tipo] [-a] [-l] [-r] [-s] sis_arch


-A Va a través del archivo /etc/fstab y trata de checar todo el sistema de archivos en una pasada.

-V Imprime información adicional acerca de lo que 'fsck' va haciendo.

-t fs-tipo Especifica el tipo de sistema de archivo a verificar.

-a Automáticamente repara cualquier problema que encuentra en el sistema de archivos sin preguntar. Use esta opción con cuidado

-l Lista todos los nombres de archivos en el sistema de archivos.

-r Pregunta la confirmación antes de reparar el sistema de archivos.

-s Lista el superblock antes de checar el sistema de archivos.
sis_arch Especifica el sistema de archivos a ser verificado.
kill, killall

Estos dos comandos se usan para enviar señales a los procesos. El comando kill necesita el número de un proceso como argumento, mientras que el comando killall necesita el nombre de un comando.

Los dos comandos opcionalmente pueden recibir el número de una señal como argumento. Predeterminadamente, ambos envían la señal 15 (TERM) a el o los procesos relevantes. Por ejemplo, si quiere matar el proceso con PID 785, Ud. ingresa el comando:


$ kill 785

Si quiere enviarle la señal 9, Ud. ahora ingresa:


$ kill -9 785

Supongamos que quiere matar un proceso del cual Ud. conoce el nombre del comando. En vez de encontrar el número de proceso usando ps, puede matar el proceso directamente:


$ killall -9 netscape

Pase lo que pase, Ud. solo matará sus propios procesos (a menos que Ud. sea root), por lo que no debe preocuparse acerca de los procesos «del vecino» que tienen el mismo nombre, ellos no serán afectados.
watch

para mostrar la utilización de memoria cada dos segundos (el intervalo de muestra predeterminado para watch), utilice este comando:

watch free


El comando watch ejecuta el comando free cada dos segundos, limpiando la pantalla para mostrar la salida actualizada y volviendo a escribir en la misma ubicación de pantalla. Esto hace mucho más fácil determinar cómo cambia la utilización de memoria con el tiempo, pues no es necesario escanear contínuamente desplazando la salida. Puede controlar el retraso entre actualizaciones usando la opción -n y causar que cualquier cambio entre actualizaciones sea resaltado usando la opción -d, como en el comando siguiente:

watch -n 1 -d free

0 Comments:

Post a Comment

<< Home