martes, 22 de diciembre de 2015

Convertir imágenes en linux con comando (bash, terminal)


Instalar el imagemagick:

sudo apt-get install imagemagick

Cambiar el tamaño y resolución de un archivo (en la carpeta donde se tiene la imagen):

convert archivo.jpg -resize 600 nombrearchivonuevo.jpg

Para cambiar el tamaño, habrá que cambiar 600 por 400 o por 800, o lo que se requiera.

En caso de tener múltiples archivos de imagen que quieran escalarse, se hace lo siguiente (ojo, poner todos los archivos en una carpeta para no modificar otros archivos)

for $file in *.png; do convert $file -resize 600 escalada-$file; done

La parte "escalada-$file" puede modificarse por un prefijo conveniente. Por ejemplo, el comando anterior hará una copia del archivo DSC001.png que será de tamaño 600 y se llamará "escalada-DSC001.png"


La diferencia principal con "convert" es que "mogrify" reemplaza la imagen que se quiere modificar. Ojo con esto.

Instalar mogrify:

sudo apt-get install mogrify


mogrify -format jpg -size 600 archivo.jpg

Para saber más (o saberlo bien):

sábado, 31 de enero de 2015

Desinstalar Mathematica en Linux

sudo rm -rf /usr/local/Wolfram
sudo rm -rf /usr/share/Mathematica
cd /usr/local/bin
sudo rm mathematica mcc Mathematica math MathKernel
rm -rf ~/.Mathematica

martes, 29 de julio de 2014

Extraer páginas de archivos pdf y juntarlas en un archivo nuevo (Linux)

Hay dos maneras para extraer páginas de un archivo pdf en Linux.

Primero hay que abrir una terminal. Algunas distribuciones la abren con las teclas Ctrl-Alt-t. Si esto no funciona, tal vez apretando primero Alt-F2 y escribiento "Terminal" en la barra que se abre con las teclas anteriores (dependiendo de la distribución gráfica, en lugar de "terminal" hay que escribir "xterm" o "mate-terminal")...Lo que nunca falla es abrir el menú de aplicaciones y buscarla..

Nota para los nuevos. El modo 2 de hacerlo es más eficiente según mi punto de vista (échenle un ojo antes de ponerse a teclear comandos).

  1. El primero de los programas que extraen páginas es el "pdftops" (sudo apt-get install pdftops en caso de que no lo tengan instalado). En realidad, este programa fue diseñado para convertir páginas o documentos pdf en archivos ps, pero funciona bien si anidamos el archivo ps generado con el que convierte los archivos de este tipo en pdf (es decir, con pdftopstransformamos las páginas elegidas del archivo pdf a un archivo nuevo que es tipo ps e, inmediatamente, transformamos este archivo nuevo en ps a un archivo nuevo en pdf).

Vale, esta es la instrucción ejemplo (por supuesto, deben estar situados en la terminal dentro de la carpeta en donde se encuentre el archivo pdf al que le quieran extraer las pá no saben hacer esto, hay que usar el comando cd para cambiar de directorio):

pdftops documento.pdf - | psselect -p11-14 | ps2pdf - archivoNuevo.pdf

En el ejemplo, el archivo "documento.pdf" es el archivo al que se le quieren extraer las páginas. p11-14 son las páginas que se quieren extraer y "archivoNuevo.pdf" es el archivo que crearán con esas páginas.
Este programa tiene varias opciones adicionales que pueden revisarse en

  1. Ahora el segundo método que, en lo personal, es el que uso. Es el paquete "pdftk" (sudo apt-get install pdftk)

Tres ejemplos rápidos:

1.- pdftk archivo1.pdf archivo2.pdf cat output archivocombinado.pdf

2.- pdftk A=archivo1.pdf B=archivo2.pdf cat A1-3 B2-5 output archivocombinado2.pdf

3.- pdftk A=archivo1.pdf B=archivo2.pdf C=archivo1.pdf cat A1-3 B1 C5-8 output archivocombinado3.pdf

El primer comando nos combina los dos archivos en uno solo (el orden en el que se escriben es el orden como los combina)

El segundo ejemplo nos combina las páginas 1 a 3  (A1-3) del primer archivo pdf con las páginas 2 a 5 (B2-5) en un archivo nuevo pdf

El último ejemplo (nótese que A y C son EL MISMO pdf) sirve para SUSTITUIR una página intermedia en el archivo1.pdf. En el ejemplo, se están extrayendo las páginas 1 a 3 (A1-3) del primer archivo, la primera página del segundo archivo (B1) y las páginas 5 a 8 del PRIMER archivo y se combinan todas en un nuevo archivo.

Para más opciones y cosas:

sábado, 12 de julio de 2014

10 ideas equivocadas en el conocimiento

Common Science Myths That Most People Believe

July 12, 2014 | by Lisa Winter
photo credit: Jens Maus via Wikimedia Commons
There are a number of old wives’ tales out there regarding some basic scientific principles. Though most of them were refuted years ago, these rumors just won’t go away. Here are some of the top myths floating around out there that just aren’t true:
We only use 10% of our brains.
It's true that there’s a great deal we don’t know about the brain, but we certainly do know that we use our entire brain. Even if we didn’t have a wealth of data from brain scans to show this 10% figure is completely false (we do), it doesn’t even make sense using basic logic. Though the brain only weighs a couple of pounds, it is incredibly energetically demanding, requiring about 20% of all of the oxygen and glucose brought into the body. It is extremely unlikely that the brain would have evolved as it did if it were mostly useless. 
Additionally, there is no evidence that someone was ever diagnosed with a brain tumor but was told: “Great news! The tumor is in a part that you don’t use!” Trauma to the brain would also rarely have devastating results if it were mostly unused, but very few survive gunshot wounds to the head, and it isn’t without some serious side effects. 
While you might not be using every bit of your brain at all times, but you do use the entire brain over the course of the day. Feeling like someone isn’t living up to his or her full potential is a different matter, but that still doesn’t mean they aren’t using their entire brain each day.
There is a dark side of the moon.
Oh, Pink Floyd, how you have led us all astray. 
From our perspective on Earth, we are able to view about 59% of the moon’s surface (though not all at the same time). The remaining 41% is completely hidden from this vantage point. That 41% must be shrouded in freezing darkness, never to feel the Sun’s warmth, right? No.
This confusion is due to tidal locking, which makes it seem as if the moon isn’t rotating. The moon actually is spinning quite slowly, completing a rotation in about the amount of time it takes it to make a revolution around Earth. While one side (more or less) is forever shielded from Earth, that has nothing to do with the amount of sunlight it receives. After all, we do have different phases of the moon
Except in the case of a lunar eclipse, sunlight falls on half of the moon (exactly how half of Earth receives daylight at once) all of the time. While the Sun fully illuminates the side of the moon we can see, we appropriately call it the full moon. When parts or all of the moon appear to be missing, some or all of the sunlight is falling on the side of the moon we can’t see. While there is most definitely a region we could refer to as “the far side of the moon” it is no more or less dark than the side we can see.
The full moon affects behavior.
It has been a longstanding myth, particularly among individuals working with the elderly or those with mental disabilities, that the full moon draws out strange behavior in people. This myth has a wide variety of supposed causes, including that the water in the brain is affected by tidal forces of the moon. Many people claim that violent crime increases during this time, and even police stations in the UK once increased staffing for a full moon to prepare for the influx of crime and accidents.
The topic has been studied many times over, and there is very limited correlation between the full moon and increased erratic behavior and certainly no causation discovered. While a few studies have indeed shown a spike in crime and the full moon, it was typically explained by falling on a holiday or weekend. Once that was taken into account, the connection crumbled. There is nothing to fear about erratic behavior and the full moon, unless, of course, you are a werewolf.
Sugar makes children hyperactive.
Attending any child’s birthday party where cake, ice cream, and sugary drinks about would make just about anyone a believer that sugar influences hyperactivity. There has not been much evidence to suggest that the so-called “sugar buzz” is actually real for children (aside from a small subset with an insulin disorder coupled with certain psychiatric disorders). The ramped-up energy seen following birthday parties or Halloween could be excitement over getting a treat or being around other kids. It is also possible that other ingredients, such as caffeine, are to blame. 
That’s not to say that sugar intake shouldn’t be limited. The average American consumes 156 pounds of sugar every year. As a comparison, Americans 200 years ago consumed about 3-5 pounds per year. Too much sugar is associated with weight gaininsulin resistancehypertension, and even an increased risk for certain cancers.
Lightning never strikes the same place twice.
“Lightning never strikes the same place twice” is a common idiom used say that something bad happened once, but it can’t happen again. Unfortunately, it has nothing to do with actual lightning strikes.
Lightning is a huge electrostatic discharge searching for a way down, and it isn’t particularly interested in whether or not it has been hit before. Taller objects, such as trees and skyscrapers, are usually choice targets because there is a shorter distance between that and the origin of the lightning. The tallest tree in a forest can get struck several times until the storm passes. In fact, lightning strikes the Empire State Building around 100 times per year.
NASA released a study in 2003 involving 386 cloud-to-ground strikes and found that over a third of the strikes branched and hit multiple locations at once. Not only does lightning strike twice, but it can also strike two places at the same time!
Dropping a penny from a tall building will kill someone.
If you were to head to the top of the Empire State Building (hopefully after it’s done being bombarded with lightning) and fling a penny down to the sidewalk below, it won’t kill anyone. Pennies are fairly lightweight at around one gram and being a flat circle doesn’t bode well in terms of aerodynamics. Because it would tumble and flip the entire way down, its low mass and relatively low terminal velocity (105 km/h) wouldn’t do much damage to the bystander on the sidewalk. It would feel similar to getting flicked in the head. Annoying, yes; but not lethal.
However, throwing items down to the ground that are more massive or more aerodynamic would increase the object’s terminal velocity and could do quite a bit of damage. Construction zones require hardhats in order to protect workers from stray rocks or bolts that are accidentally dropped from great heights.
Hair and fingernails continue growing after death.
In order for fingernails and hair to grow after someone is dead, the person would need to still be eating and digesting nutrients and performing cellular processes. Of course, that would interfere with the whole “being dead” thing. So there’s no way the body is producing more keratin in order to make hair and fingernails.
However, skin and hair can appear to grow post-mortem. As the dead skin begins to dry out, they retract and pull away from the hair shafts and nail beds. The hair and fingernails are not affected by the lack of moisture and do not shrink, which can make it seem as if they had grown. This also makes clean-shaven men appear to have grown stubble. Many funeral homes will apply moisturizer after the corpse has been washed in order to reduce the amount of drying prior to the memorial service.
Cracking your knuckles gives you arthritis.
While it makes sense on the surface that repeatedly pushing and stretching joints to make them crack would eventually lead to osteoarthritis, which is the painful deterioration of the joints, studies that have been performed on the topic have not been able to show a connection. In 1998, Donald Unger published a paper that revealed he had been cracking the knuckles in his left hand every day for 60 years, but not at all on his right hand. There was no difference in the joint health between the two hands, and Unger received the 2009 Ig Nobel Prize in Medicine for his work.
Synovial fluid is a substance that acts as a cushion and reduce friction in synovial joints, such as knuckles, elbows, knees, and hips. When the joints are stretched and the joint capsule separates, the decreased pressure within the capsule releases gas, forming a bubble to make up for the dead space. Pressing on the joint can create a loud, audible pop as the bubble breaks and the joint capsule returns to its normal size. If cracking knuckles is associated with pain, it may indicate damaged joints that need to be addressed. The cracking sound can also come from tendons, which can reduce their strength over time.
It takes seven years to digest swallowed chewing gum.
Chewing gum does not take seven years to digest. In fact, you don’t even digest it at all. Aside from a small amount of sweeteners and flavorings, there’s really not a lot inside the gum that the human body can actually break down and use. The bulk of gum is made out of rubbery polymers known as elastomers along with glycerin and vegetable oil-based ingredients to keep the gum soft and moist. Once the body has extracted what little it can from the gum, the rest is passed along as waste, just like anything else. 
However, that doesn’t mean swallowing gum is a great idea. Swallowing large amounts of gum can cause constipation and gastrointestinal blockage that needs to be removed by a physician. Gum can also fuse with other non-digestible items in the digestive tract such as coins, small toys, and sharp sunflower seed shells, which could contribute to gastrointestinal blockage or injury. While gum won’t stick around in your gut for seven years, it’s probably still safer to spit it out in a garbage can and wait to give it to children until they are old enough to know not to swallow it.
Antibiotics kill viruses. 
This one pops up every cold and flu season. Antibiotics, by their very definition, kill bacteria. The common cold and influenza are viruses and are not affected by antibiotic use. While some might think that taking antibiotics could be helpful on some level and want them for viral disease, that is dead wrong and could actually bring on more problems. Taking antibiotics in a manner contrary to their intended purpose or dosage instruction could cause other common bacteria within the body to become drug-resistant, which has become critically important. This could create “superbugs” that cause illness much worse than the primary 
The CDC has reported that physicians write tens of millions of antibiotic prescriptions each year for illnesses that are viral. This is partly due to uncertainty of the cause and badgering from the patients (or the parents of children). Some doctors are slightly more justified in prescribing antibiotics for a condition that can be bacterial or viral without making the patient wait days for lab results to return determining the cause. However, it is important for patients to understand why antibiotics don’t kill virus and to not demand drugs that will likely do more harm than good.


domingo, 28 de julio de 2013

Latex para físicos

LaTeX for Physicists

To get LaTex running on a windows system,
  1. Download and install MikTex
  2. Download and install TeXnicCenter
  3. Download the LaTex for Physicists Header
  4. Copy the header to the folder where you will save your document
  5. Add \input{header.tex} to the first line of your document as in this template
The LaTeX for Physicists Header has the following features:
  • Sets font size to 11pt
  • Includes commonly needed packages
  • Reduces page margins to 0.75in for more space
  • Redefines \maketitle to save space
  • Removes page numbers
  • Changes enumeration to letters as in physics exercises
  • \v{ } makes bold vectors (\v is redefined to \vaccent)
  • \uv{ } makes bold unit vectors with hats
  • \gv{ } makes bold vectors of greek letters
  • \abs{ } makes the absolute value symbol
  • \avg{ } makes the angled average symbol
  • \d{ }{ } makes derivatives (\d is redefined to \underdot)
  • \dd{ }{ } makes double derivatives
  • \pd{ }{ } makes partial derivatives
  • \pdd{ }{ } makes double partial derivatives
  • \pdc{ }{ }{ } makes thermodynamics partial derivatives
  • \ket{ } makes Dirac kets
  • \bra{ } makes Dirac bras
  • \braket{ }{ } makes Dirac brackets
  • \matrixel{ }{ }{ } makes Dirac matrix elements
  • \grad{ } makes a gradient operator
  • \div{ } makes a divergence operator (\div is redefined to \divsymb)
  • \curl{ } makes a curl operator
  • \={ } makes numbers appear over equal signs (\= is redefined to \baraccent)
General LaTeX tips:
  • Use "$ ... $" for inline equations
  • Use "\[ ... \]" for equations on their own line
  • Use "\begin{center} ... \end{center}" to center something
  • Use "\includegraphics[width=?cm]{filename.eps}" for images - must compile to dvi then use dvipdfm from a batch file
  • Use "\begin{multicols}{2} ... \end{multicols}" for two columns
  • Use "\begin{enumerate} \item ... \end{enumerate}" for parts of physics exercises
  • Use "\section*{ }" for sections without numbering
  • Use "\begin{cases} ... \end{cases}" for piecewise functions
  • Use "\mathcal{ }" for a caligraphic font
  • Use "\mathbb{ }" for a blackboard bold font
Below is a list of commonly used builtin symbols 
LaTeX Symbol Search - search for LaTeX code by its mathematical name
Comprehensive List of Symbols

Traído sin escrúpulos desde:

martes, 23 de julio de 2013

Comandos consola

Otro resumen de los comandos más usados en la terminal para linux.

Información Del Sistema

  • arch: mostrar la arquitectura de la máquina (1).
  • uname -m: mostrar la arquitectura de la máquina (2).
  • uname -r: mostrar la versión del kernel usado.
  • dmidecode -q: mostrar los componentes (hardware) del sistema.
  • hdparm -i /dev/hda: mostrar las características de un disco duro.
  • hdparm -tT /dev/sda: realizar prueba de lectura en un disco duro.
  • cat /proc/cpuinfo: mostrar información de la CPU.
  • cat /proc/interrupts: mostrar las interrupciones.
  • cat /proc/meminfo: verificar el uso de memoria.
  • cat /proc/swaps: mostrar ficheros swap.
  • cat /proc/version: mostrar la versión del kernel.
  • cat /proc/net/dev: mostrar adaptadores de red y estadísticas.
  • cat /proc/mounts: mostrar el sistema de ficheros montado.
  • lspci -tv: mostrar los dispositivos PCI.
  • lsusb -tv: mostrar los dispositivos USB.
  • date: mostrar la fecha del sistema.
  • cal 2011: mostrar el almanaque de 2011.
  • cal 07 2011: mostrar el almanaque para el mes julio de 2011.
  • date 041217002011.00: colocar (declarar, ajustar) fecha y hora.
  • clock -w: guardar los cambios de fecha en la BIOS.

Apagar (Reiniciar Sistema o Cerrar Sesión)

  • shutdown -h now: apagar el sistema (1).
  • init 0: apagar el sistema (2).
  • telinit 0: apagar el sistema (3).
  • halt: apagar el sistema (4).
  • shutdown -h hours: minutes &: apagado planificado del sistema.
  • shutdown -c: cancelar un apagado planificado del sistema.
  • shutdown -r now: reiniciar (1).
  • reboot: reiniciar (2).
  • logout: cerrar sesión.

Archivos y Directorios

  • cd /home: Entrar en el directorio “home”.
  • cd ..: Retroceder un nivel.
  • cd ../..: Retroceder 2 niveles.
  • cd: Ir al directorio raíz.
  • cd ~user1: Ir al directorio user1.
  • cd -: Ir (regresar) al directorio anterior.
  • pwd: Mostrar el camino del directorio de trabajo.
  • ls: Ver los ficheros de un directorio.
  • ls -F: Ver los ficheros de un directorio.
  • ls -l:  Mostrar los detalles de ficheros y carpetas de un directorio.
  • ls -a: Mostrar los ficheros ocultos.
  • ls *[0-9]*: mostrar los ficheros y carpetas que contienen números.
  • tree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(1)
  • lstree: mostrar los ficheros y carpetas en forma de árbol comenzando por la raíz.(2)
  • mkdir dir1: crear una carpeta o directorio con nombre ‘dir1′.
  • mkdir dir1 dir2: crear dos carpetas o directorios simultáneamente (Crear dos directorios a la vez).
  • mkdir -p /tmp/dir1/dir2: crear un árbol de directorios.
  • rm -f file1: borrar el fichero llamado ‘file1′.
  • rmdir dir1: borrar la carpeta llamada ‘dir1′.
  • rm -rf dir1: eliminar una carpeta llamada ‘dir1′ con su contenido de forma recursiva. (Si lo borro recursivo estoy diciendo que es con su contenido).
  • rm -rf dir1 dir2: borrar dos carpetas (directorios) con su contenido de forma recursiva.
  • mv dir1 new_dir: renombrar o mover un fichero o carpeta (directorio).
  • cp file1: copiar un fichero.
  • cp file1 file2: copiar dos ficheros al unísono.
  • cp dir /* .: copiar todos los ficheros de un directorio dentro del directorio de trabajo actual.
  • cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual de trabajo.
  • cp -a dir1: copiar un directorio.
  • cp -a dir1 dir2: copiar dos directorio al unísono.
  • ln -s file1 lnk1: crear un enlace simbólico al fichero o directorio.
  • ln file1 lnk1: crear un enlace físico al fichero o directorio.
  • touch -t 0712250000 file1: modificar el tiempo real (tiempo de creación) de un fichero o directorio.
  • file file1: salida (volcado en pantalla) del tipo mime de un fichero texto.
  • iconv -l: listas de cifrados conocidos.
  • iconv -f fromEncoding -t toEncoding inputFile > outputFile: crea una nueva forma del fichero de entrada asumiendo que está codificado en fromEncoding y convirtiéndolo a ToEncoding.
  • find . -maxdepth 1 -name *.jpg -print -exec convert ”{}” -resize 80×60 “thumbs/{}” ;: agrupar ficheros redimensionados en el directorio actual y enviarlos a directorios en vistas de miniaturas (requiere convertir desde ImagemagicK).

Encontrar archivos

  • find / -name file1: buscar fichero y directorio a partir de la raíz del sistema.
  • find / -user user1: buscar ficheros y directorios pertenecientes al usuario ‘user1′.
  • find /home/user1 -name *.bin: buscar ficheros con extensión ‘. bin’ dentro del directorio ‘/ home/user1′.
  • find /usr/bin -type f -atime +100: buscar ficheros binarios no usados en los últimos 100 días.
  • find /usr/bin -type f -mtime -10: buscar ficheros creados o cambiados dentro de los últimos 10 días.
  • find / -name *.rpm -exec chmod 755 ‘{}’ ;: buscar ficheros con extensión ‘.rpm’ y modificar permisos.
  • find / -xdev -name *.rpm: Buscar ficheros con extensión ‘.rpm’ ignorando los dispositivos removibles como cdrom, pen-drive, etc.…
  • locate *.ps: encuentra ficheros con extensión ‘.ps’ ejecutados primeramente con el command ‘updatedb’.
  • whereis halt: mostrar la ubicación de un fichero binario, de ayuda o fuente. En este caso pregunta dónde está el comando ‘halt’.
  • which halt: mostrar la senda completa (el camino completo) a un binario / ejecutable.

Montando un sistema de ficheros

  • mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2. Verifique primero la existencia del directorio ‘/ mnt/hda2′; si no está, debe crearlo.
  • umount /dev/hda2: desmontar un disco llamado hda2. Salir primero desde el punto ‘/ mnt/hda2.
  • fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo está ocupado.
  • umount -n /mnt/hda2: correr el desmontaje sin leer el fichero /etc/mtab. Útil cuando el fichero es de solo lectura o el disco duro está lleno.
  • mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).
  • mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.
  • mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o un dvdrom.
  • mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable / dvdrom (un dvd).
  • mount -o loop file.iso /mnt/cdrom: montar un fichero o una imagen iso.
  • mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de ficheros FAT32.
  • mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una memoria (sin especificar el tipo de sistema de ficheros).

Espacio de Disco

  • df -h: mostrar una lista de las particiones montadas.
  • ls -lSr |more: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  • du -sh dir1: Estimar el espacio usado por el directorio ‘dir1′.
  • du -sk * | sort -rn: mostrar el tamaño de los ficheros y directorios ordenados por tamaño.
  • rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y otros).
  • dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n: mostrar el espacio usado por los paquetes instalados, organizados por tamaño (Ubuntu, Debian y otros).

Usuarios y Grupos

  • groupadd nombre_del_grupo: crear un nuevo grupo.
  • groupdel nombre_del_grupo: borrar un grupo.
  • groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo: renombrar un grupo.
  • useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1: Crear un nuevo usuario perteneciente al grupo “admin”.
  • useradd user1: crear un nuevo usuario.
  • userdel -r user1: borrar un usuario (‘-r’ elimina el directorio Home).
  • usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1: cambiar los atributos del usuario.
  • passwd: cambiar contraseña.
  • passwd user1: cambiar la contraseña de un usuario (solamente por root).
  • chage -E 2011-12-31 user1: colocar un plazo para la contraseña del usuario. En este caso dice que la clave expira el 31 de diciembre de 2011.
  • pwck: chequear la sintaxis correcta el formato de fichero de ‘/etc/passwd’ y la existencia de usuarios.
  • grpck: chequear la sintaxis correcta y el formato del fichero ‘/etc/group’ y la existencia de grupos.
  • newgrp group_name: registra a un nuevo grupo para cambiar el grupo predeterminado de los ficheros creados recientemente.

Permisos en Ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)

  • ls -lh: Mostrar permisos.
  • ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
  • chmod ugo+rwx directory1: colocar permisos de lectura ®, escritura (w) y ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio ‘directory1′.
  • chmod go-rwx directory1: quitar permiso de lectura ®, escritura (w) y (x) ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1′.
  • chown user1 file1: cambiar el dueño de un fichero.
  • chown -R user1 directory1: cambiar el propietario de un directorio y de todos los ficheros y directorios contenidos dentro.
  • chgrp group1 file1: cambiar grupo de ficheros.
  • chown user1:group1 file1: cambiar usuario y el grupo propietario de un fichero.
  • find / -perm -u+s: visualizar todos los ficheros del sistema con SUID configurado.
  • chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El usuario que corriendo ese fichero adquiere los mismos privilegios como dueño.
  • chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero binario.
  • chmod g+s /home/public: colocar un bit SGID en un directorio –similar al SUID pero por directorio.
  • chmod g-s /home/public: desabilitar un bit SGID en un directorio.
  • chmod o+t /home/public: colocar un bit STIKY en un directorio. Permite el borrado de ficheros solamente a los dueños legítimos.
  • chmod o-t /home/public: desabilitar un bit STIKY en un directorio.

Atributos especiales en ficheros (Usa ”+” para colocar permisos y ”-” para eliminar)

  • chattr +a file1: permite escribir abriendo un fichero solamente modo append.
  • chattr +c file1: permite que un fichero sea comprimido / descomprimido automaticamente.
  • chattr +d file1: asegura que el programa ignore borrar los ficheros durante la copia de seguridad.
  • chattr +i file1: convierte el fichero en invariable, por lo que no puede ser eliminado, alterado, renombrado, ni enlazado.
  • chattr +s file1: permite que un fichero sea borrado de forma segura.
  • chattr +S file1: asegura que un fichero sea modificado, los cambios son escritos en modo synchronous como con sync.
  • chattr +u file1: te permite recuperar el contenido de un fichero aún si este está cancelado.
  • lsattr: mostrar atributos especiales.

Archivos y Ficheros comprimidos

  • bunzip2 file1.bz2: descomprime in fichero llamado ‘file1.bz2′.
  • bzip2 file1: comprime un fichero llamado ‘file1′.
  • gunzip file1.gz: descomprime un fichero llamado ‘file1.gz’.
  • gzip file1: comprime un fichero llamado ‘file1′.
  • gzip -9 file1: comprime con compresión máxima.
  • rar a file1.rar test_file: crear un fichero rar llamado ‘file1.rar’.
  • rar a file1.rar file1 file2 dir1: comprimir ‘file1′, ‘file2′ y ‘dir1′ simultáneamente.
  • rar x file1.rar: descomprimir archivo rar.
  • unrar x file1.rar: descomprimir archivo rar.
  • tar -cvf archive.tar file1: crear un tarball descomprimido.
  • tar -cvf archive.tar file1 file2 dir1: crear un archivo conteniendo ‘file1′, ‘file2′ y’dir1′.
  • tar -tf archive.tar: mostrar los contenidos de un archivo.
  • tar -xvf archive.tar: extraer un tarball.
  • tar -xvf archive.tar -C /tmp: extraer un tarball en / tmp.
  • tar -cvfj archive.tar.bz2 dir1: crear un tarball comprimido dentro de bzip2.
  • tar -xvfj archive.tar.bz2: descomprimir un archivo tar comprimido en bzip2
  • tar -cvfz archive.tar.gz dir1: crear un tarball comprimido en gzip.
  • tar -xvfz archive.tar.gz: descomprimir un archive tar comprimido en gzip.
  • zip file1: crear un archivo comprimido en zip.
  • zip -r file1 file2 dir1: comprimir, en zip, varios archivos y directorios de forma simultánea.
  • unzip descomprimir un archivo zip.

Paquetes RPM (Red Hat, Fedora y similares)

  • rpm -ivh package.rpm: instalar un paquete rpm.
  • rpm -ivh –nodeeps package.rpm: instalar un paquete rpm ignorando las peticiones de dependencias.
  • rpm -U package.rpm: actualizar un paquete rpm sin cambiar la configuración de los ficheros.
  • rpm -F package.rpm: actualizar un paquete rpm solamente si este está instalado.
  • rpm -e package_name.rpm: eliminar un paquete rpm.
  • rpm -qa: mostrar todos los paquetes rpm instalados en el sistema.
  • rpm -qa | grep httpd: mostrar todos los paquetes rpm con el nombre “httpd”.
  • rpm -qi package_name: obtener información en un paquete específico instalado.
  • rpm -qg “System Environment/Daemons”: mostar los paquetes rpm de un grupo software.
  • rpm -ql package_name: mostrar lista de ficheros dados por un paquete rpm instalado.
  • rpm -qc package_name: mostrar lista de configuración de ficheros dados por un paquete rpm instalado.
  • rpm -q package_name –whatrequires: mostrar lista de dependencias solicitada para un paquete rpm.
  • rpm -q package_name –whatprovides: mostar la capacidad dada por un paquete rpm.
  • rpm -q package_name –scripts: mostrar los scripts comenzados durante la instalación /eliminación.
  • rpm -q package_name –changelog: mostar el historial de revisions de un paquete rpm.
  • rpm -qf /etc/httpd/conf/httpd.conf: verificar cuál paquete rpm pertenece a un fichero dado.
  • rpm -qp package.rpm -l: mostrar lista de ficheros dados por un paquete rpm que aún no ha sido instalado.
  • rpm –import /media/cdrom/RPM-GPG-KEY: importar la firma digital de la llave pública.
  • rpm –checksig package.rpm: verificar la integridad de un paquete rpm.
  • rpm -qa gpg-pubkey: verificar la integridad de todos los paquetes rpm instalados.
  • rpm -V package_name: chequear el tamaño del fichero, licencias, tipos, dueño, grupo, chequeo de resumen de MD5 y última modificación.
  • rpm -Va: chequear todos los paquetes rpm instalados en el sistema. Usar con cuidado.
  • rpm -Vp package.rpm: verificar un paquete rpm no instalado todavía.
  • rpm2cpio package.rpm | cpio –extract –make-directories *bin*: extraer fichero ejecutable desde un paquete rpm.
  • rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm: instalar un paquete construido desde una fuente rpm.
  • rpmbuild –rebuild package_name.src.rpm: construir un paquete rpm desde una fuente rpm.

Actualizador de paquetes YUM (Red Hat, Fedora y similares)

  • yum install package_name: descargar e instalar un paquete rpm.
  • yum localinstall package_name.rpm: este instalará un RPM y tratará de resolver todas las dependencies para ti, usando tus repositorios.
  • yum update package_name.rpm: actualizar todos los paquetes rpm instalados en el sistema.
  • yum update package_name: modernizar / actualizar un paquete rpm.
  • yum remove package_name: eliminar un paquete rpm.
  • yum list: listar todos los paquetes instalados en el sistema.
  • yum search package_name: Encontrar un paquete en repositorio rpm.
  • yum clean packages: limpiar un caché rpm borrando los paquetes descargados.
  • yum clean headers: eliminar todos los ficheros de encabezamiento que el sistema usa para resolver la dependencia.
  • yum clean all: eliminar desde los paquetes caché y ficheros de encabezado.

Paquetes Deb (Debian, Ubuntu y derivados)

  • dpkg -i package.deb: instalar / actualizar un paquete deb.
  • dpkg -r package_name: eliminar un paquete deb del sistema.
  • dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
  • dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
  • dpkg -s package_name: obtener información en un paquete específico instalado en el sistema.
  • dpkg -L package_name: mostar lista de ficheros dados por un paquete instalado en el sistema.
  • dpkg –contents package.deb: mostrar lista de ficheros dados por un paquete no instalado todavía.
  • dpkg -S /bin/ping: verificar cuál paquete pertenece a un fichero dado.
  • Actualizador de paquetes APT (Debian, Ubuntu y derivados)
  • apt-get install package_name: instalar / actualizar un paquete deb.
  • apt-cdrom install package_name: instalar / actualizar un paquete deb desde un cdrom.
  • apt-get update: actualizar la lista de paquetes.
  • apt-get upgrade: actualizar todos los paquetes instalados.
  • apt-get remove package_name: eliminar un paquete deb del sistema.
  • apt-get check: verificar la correcta resolución de las dependencias.
  • apt-get clean: limpiar cache desde los paquetes descargados.
  • apt-cache search searched-package: retorna lista de paquetes que corresponde a la serie «paquetes buscados».

Ver el contenido de un fichero

  • cat file1: ver los contenidos de un fichero comenzando desde la primera hilera.
  • tac file1: ver los contenidos de un fichero comenzando desde la última línea.
  • more file1: ver el contenido a lo largo de un fichero.
  • less file1: parecido al commando ‘more’ pero permite salvar el movimiento en el fichero así como el movimiento hacia atrás.
  • head -2 file1: ver las dos primeras líneas de un fichero.
  • tail -2 file1: ver las dos últimas líneas de un fichero.
  • tail -f /var/log/messages: ver en tiempo real qué ha sido añadido al fichero.

Manipulación de texto

  • cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt: sintaxis general para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
  • cat file1 | command( sed, grep, awk, grep, etc…) > result.txt: sintaxis general para manipular un texto de un fichero y escribir el resultado en un fichero nuevo.
  • cat file1 | command( sed, grep, awk, grep, etc…) » result.txt: sintaxis general para manipular un texto de un fichero y añadir resultado en un fichero existente.
  • grep Aug /var/log/messages: buscar palabras “Aug” en el fichero ‘/var/log/messages’.
  • grep ^Aug /var/log/messages: buscar palabras que comienzan con “Aug” en fichero ‘/var/log/messages’
  • grep [0-9] /var/log/messages: seleccionar todas las líneas del fichero ‘/var/log/messages’ que contienen números.
  • grep Aug -R /var/log/*: buscar la cadena “Aug” en el directorio ‘/var/log’ y debajo.
  • sed ‘s/stringa1/stringa2/g’ example.txt: reubicar “string1” con “string2” en ejemplo.txt
  • sed ‘/^$/d’ example.txt: eliminar todas las líneas en blanco desde el ejemplo.txt
  • sed ‘/ *#/d; /^$/d’ example.txt: eliminar comentarios y líneas en blanco de ejemplo.txt
  • echo ‘esempio’ | tr ‘[:lower:]‘ ‘[:upper:]‘: convertir minúsculas en mayúsculas.
  • sed -e ’1d’ result.txt: elimina la primera línea del fichero ejemplo.txt
  • sed -n ‘/stringa1/p’: visualizar solamente las líneas que contienen la palabra “string1”.

Establecer caracter y conversión de ficheros

  • dos2unix filedos.txt fileunix.txt: convertir un formato de fichero texto desde MSDOS a UNIX.
  • unix2dos fileunix.txt filedos.txt: convertir un formato de fichero de texto desde UNIX a MSDOS.
  • recode ..HTML < page.txt > page.html: convertir un fichero de texto en html.
  • recode -l | more: mostrar todas las conversiones de formato disponibles.

Análisis del sistema de ficheros

  • badblocks -v /dev/hda1: Chequear los bloques defectuosos en el disco hda1.
  • fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema Linux en el disco hda1.
  • fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  • e2fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 2 en el disco hda1.
  • e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  • fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero del sistema ext 3 en el disco hda1.
  • fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero sistema fat en el disco hda1.
  • fsck.msdos /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.
  • dosfsck /dev/hda1: reparar / chequear la integridad de un fichero del sistema dos en el disco hda1.

Formatear un sistema de ficheros

  • mkfs /dev/hda1: crear un fichero de sistema tipo Linux en la partición hda1.
  • mke2fs /dev/hda1: crear un fichero de sistema tipo Linux ext 2 en hda1.
  • mke2fs -j /dev/hda1: crear un fichero de sistema tipo Linux ext3 (periódico) en la partición hda1.
  • mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32 en hda1.
  • fdformat -n /dev/fd0: formatear un disco flooply.
  • mkswap /dev/hda3: crear un fichero de sistema swap.

Trabajo con la SWAP

  • mkswap /dev/hda3: crear fichero de sistema swap.
  • swapon /dev/hda3: activando una nueva partición swap.
  • swapon /dev/hda2 /dev/hdb3: activar dos particiones swap.

Respaldos (Backup)

  • dump -0aj -f /tmp/home0.bak /home: hacer una salva completa del directorio ‘/home’.
  • dump -1aj -f /tmp/home0.bak /home: hacer una salva incremental del directorio ‘/home’.
  • restore -if /tmp/home0.bak: restaurando una salva interactivamente.
  • rsync -rogpav –delete /home /tmp: sincronización entre directorios.
  • rsync -rogpav -e ssh –delete /home ip_address:/tmp: rsync a través del túnel SSH.
  • rsync -az -e ssh –delete ip_addr:/home/public /home/local: sincronizar un directorio local con un directorio remoto a través de ssh y de compresión.
  • rsync -az -e ssh –delete /home/local ip_addr:/home/public: sincronizar un directorio remoto con un directorio local a través de ssh y de compresión.
  • dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’: hacer una salva de un disco duro en un host remoto a través de ssh.
  • dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco duro a un fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
  • tar -Puf backup.tar /home/user: hacer una salva incremental del directorio ‘/home/user’.
  • ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’: copiar el contenido de un directorio en un directorio remoto a través de ssh.
  • ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’: copiar un directorio local en un directorio remoto a través de ssh.
  • tar cf – . | (cd /tmp/backup ; tar xf – ): copia local conservando las licencias y enlaces desde un directorio a otro.
  • find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents: encontrar y copiar todos los ficheros con extensión ‘.txt’ de un directorio a otro.
  • find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2: encontrar todos los ficheros con extensión ‘.log’ y hacer un archivo bzip.
  • dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia del MRB (Master Boot Record) a un disco floppy.
  • dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la copia del MBR (Master Boot Record) salvada en un floppy.


  • cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o borrar un cd regrabable.
  • mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
  • mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de cdrom en disco.
  • mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: crear una imagen iso de un directorio.
  • cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
  • gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom -: quemar una imagen iso comprimida.
  • mount -o loop cd.iso /mnt/iso: montar una imagen iso.
  • cd-paranoia -B: llevar canciones de un cd a ficheros wav.
  • cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
  • cdrecord –scanbus: escanear bus para identificar el canal scsi.
  • dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo, como un CD.

Trabajo con la RED ( LAN y Wi-Fi)

  • ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
  • ifup eth0: activar una interface ‘eth0′.
  • ifdown eth0: deshabilitar una interface ‘eth0′.
  • ifconfig eth0 netmask configurar una dirección IP.
  • ifconfig eth0 promisc: configurar ‘eth0′en modo común para obtener los paquetes (sniffing).
  • dhclient eth0: activar la interface ‘eth0′ en modo dhcp.
  • route -n: mostrar mesa de recorrido.
  • route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
  • route add -net netmask gw configurar ruta estática para buscar la red ’′.
  • route del 0/0 gw IP_gateway: eliminar la ruta estática.
  • echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
  • hostname: mostrar el nombre del host del sistema.
  • host buscar el nombre del host para resolver el nombre a una dirección ip(1).
  • nslookup buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa(2).
  • ip link show: mostar el estado de enlace de todas las interfaces.
  • mii-tool eth0: mostar el estado de enlace de ‘eth0′.
  • ethtool eth0: mostrar las estadísticas de tarjeta de red ‘eth0′.
  • netstat -tup: mostrar todas las conexiones de red activas y sus PID.
  • netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus PID.
  • tcpdump tcp port 80: mostrar todo el tráfico HTTP.
  • iwlist scan: mostrar las redes inalámbricas.
  • iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
  • whois buscar en base de datos Whois.

Redes de Microsoft Windows (SAMBA)

  • nbtscan ip_addr: resolución de nombre de red bios.
  • nmblookup -A ip_addr: resolución de nombre de red bios.
  • smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en windows.


  • iptables -t filter -L: mostrar todas las cadenas de la tabla de filtro.
  • iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
  • iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
  • iptables -t nat -F: limpiar todas las reglas de la tabla nat.
  • iptables -t filter -X: borrar cualquier cadena creada por el usuario.
  • iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permitir las conexiones telnet para entar.
  • iptables -t filter -A OUTPUT -p tcp –dport http -j DROP: bloquear las conexiones HTTPpara salir.
  • iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitir las conexionesPOP a una cadena delantera.
  • iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando una cadena de entrada.
  • iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: configurar un PAT (Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida forzada.
  • iptables -t nat -A PREROUTING -d -p tcp -m tcp –dport 22 -j DNAT –to-destination redireccionar los paquetes diriguidos de un host a otro.

Monitoreando y depurando

  • top: mostrar las tareas de linux usando la mayoría cpu.
  • ps -eafw: muestra las tareas Linux.
  • ps -e -o pid,args –forest: muestra las tareas Linux en un modo jerárquico.
  • pstree: mostrar un árbol sistema de procesos.
  • kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
  • kill -1 ID_Processo: forzar un proceso para recargar la configuración.
  • lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
  • lsof /home/user1: muestra una lista de ficheros abiertos en un camino dado del sistema.
  • strace -c ls >/dev/null: mostrar las llamadas del sistema hechas y recibidas por un proceso.
  • strace -f -e open ls >/dev/null: mostrar las llamadas a la biblioteca.
  • watch -n1 ‘cat /proc/interrupts’: mostrar interrupciones en tiempo real.
  • last reboot: mostrar historial de reinicio.
  • lsmod: mostrar el kernel cargado.
  • free -m: muestra el estado de la RAM en megabytes.
  • smartctl -A /dev/hda: monitorear la fiabilidad de un disco duro a través de SMART.
  • smartctl -i /dev/hda: chequear si SMART está activado en un disco duro.
  • tail /var/log/dmesg: mostrar eventos inherentes al proceso de carga del kernel.
  • tail /var/log/messages: mostrar los eventos del sistema.

Otros comandos útiles

  • apropos …keyword: mostrar una lista de comandos que pertenecen a las palabras claves de un programa; son útiles cuando tú sabes qué hace tu programa, pero de sconoces el nombre del comando.
  • man ping: mostrar las páginas del manual on-line; por ejemplo, en un comando ping, usar la opción ‘-k’ para encontrar cualquier comando relacionado.
  • whatis …keyword: muestra la descripción de lo que hace el programa.
  • mkbootdisk –device /dev/fd0 uname -r: crear un floppy boteable.
  • gpg -c file1: codificar un fichero con guardia de seguridad GNU.
  • gpg file1.gpg: decodificar un fichero con Guardia de seguridad GNU.
  • wget -r descargar un sitio web completo.
  • wget -c descargar un fichero con la posibilidad de parar la descargar y reanudar más tarde.
  • echo ‘wget -c‘ | at 09:00: Comenzar una descarga a cualquier hora. En este caso empezaría a las 9 horas.
  • ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas por el programa ssh.
  • alias hh=’history’: colocar un alias para un commando –hh= Historial.
  • chsh: cambiar el comando Shell.
  • chsh –list-shells: es un comando adecuado para saber si tienes que hacer remoto en otra terminal.
  • who -a: mostrar quien está registrado, e imprimir hora del último sistema de importación, procesos muertos, procesos de registro de sistema, procesos activos producidos por init, funcionamiento actual y últimos cambios del reloj del sistema.