Diferencia entre revisiones de «Comandos frecuentes linux»

De Luis Moreno Wiki
Ir a la navegación Ir a la búsqueda
(Página creada con «Comandos Frecuentes Linux Principalmente Debian y RedHat --------- Comandos Linux -- Pedir ayuda de cualquier comando man <comando> Ejemplo: man grep -- Como partic…»)
 
 
(No se muestran 15 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
Comandos Frecuentes Linux
+
Comandos Frecuentes Linux<br>
 +
<br>
 +
Recuerda buscar con CTRL+F con acentos y sin acentos, a veces lo escribía con teclado en inglés y no era fácil poner los acentos.<br>
 +
Por ejemplo si quieres ver como se pone una ip fija en CentOS busca "direccion" así sin acento y vas saltando entre las respuestas hasta que encuentres lo que buscas.<br>
 +
 
 +
 
 
Principalmente Debian y RedHat
 
Principalmente Debian y RedHat
 
---------
 
---------
 +
Es una compilación de comandos Linux que fui haciendo mientras aprendía y que aún uso de referencia, espero que también les sirva a ustedes tanto como me ha servido a mi.
  
 
Comandos Linux
 
Comandos Linux
Línea 13: Línea 19:
 
-- Como particionar el disco para usar Linux partition
 
-- Como particionar el disco para usar Linux partition
 
-- Verifica, crea, elimina particiones
 
-- Verifica, crea, elimina particiones
fdisk /dev/hda
+
fdisk /dev/hda
  
 
-- Crea una particion en el disco duro primario
 
-- Crea una particion en el disco duro primario
Línea 26: Línea 32:
 
Ext3 es mejor = ext2 with journaling
 
Ext3 es mejor = ext2 with journaling
  
-- Varios
+
-- Varios<br>
clear - limpia la pantalla
+
clear - limpia la pantalla<br>
reset - Resetea terminal a los valores por default
+
reset - Resetea terminal a los valores por default<br>
finger - muestra informacion de usuarios del sistema
+
finger - muestra informacion de usuarios del sistema<br>
who - muestra usuarios conectados al sistema actualmente
+
who - muestra usuarios conectados al sistema actualmente<br>
w - muestra quien esta conectado actualmente y sus tareas, sessions sesiones
+
w - muestra quien esta conectado actualmente y sus tareas, sessions sesiones<br>
whoami - muestra el nombre del usuario actual
+
whoami - muestra el nombre del usuario actual<br>
id - muestra numeros asociados con tu cuenta de usuario y nombres de grupo
+
id - muestra numeros asociados con tu cuenta de usuario y nombres de grupo<br>
date - muestra fecha actual y hora
+
date - muestra fecha actual y hora<br>
cal - muestra el calendario del mes actual
+
cal - muestra el calendario del mes actual<br>
cat - ver contenido de archivos
+
cat - ver contenido de archivos<br>
exit - sale del shell actual
+
exit - sale del shell actual<br>
echo - muestra informacion en la pantalla
+
echo - muestra informacion en la pantalla<br>
echo $SHELL muestra el shell actual
+
echo $SHELL muestra el shell actual<br>
$ Variable Shell
+
$ Variable Shell<br>
~ Variable especial home directory (por ejemplo "cd ~" te lleva a /home/usuario
+
~ Variable especial home directory (por ejemplo "cd ~" te lleva a /home/usuario<br>
& ejecucion de comando en background ejemplo: "nmap -O 192.168.1.1-24 &" ejecuta el comando en el background y puedes siguir teclando comandos
+
& ejecucion de comando en background ejemplo: "nmap -O 192.168.1.1-24 &" ejecuta el comando en el background y puedes siguir teclando comandos<br>
; terminacion de comando
+
< << > >> Redireccion entrada/salida<br>
< << > >> Redireccion entrada/salida
+
| pipe para encadenar comandos, ejemplo: "cat archivo.txt | grep nombre" dos comandos combinados<br>
| pipe para encadenar comandos, ejemplo: "cat archivo.txt | grep nombre" dos comandos combinados
+
?[]* shell wildcards comodines, ejemplo: "ls *.txt"<br>
*?[] shell wildcards comodines, ejemplo: "ls *.txt"
+
' " \ Metacaracters comilla<br>
 
+
` substitucion de comando<br>
' " \ Metacaracters comilla
+
() {} agrupacion de comandos<br>
` substitucion de comando
 
() {} agrupacion de comandos
 
  
 
--Cancelar la ejecución de un comando
 
--Cancelar la ejecución de un comando
CTRL+C
+
CTRL+C
 
Es decir mantener presionada la tecla control (ctrl), luego presionar la tecla C, despues soltar ambas
 
Es decir mantener presionada la tecla control (ctrl), luego presionar la tecla C, despues soltar ambas
  
 
--Listar archivos
 
--Listar archivos
ls -l
+
ls -l
 
-- mostrar el número de archivos en un folder o directorio
 
-- mostrar el número de archivos en un folder o directorio
echo *.* | wc
+
echo *.* | wc
 
-- mostrar el número de directorios en un folder o directorio
 
-- mostrar el número de directorios en un folder o directorio
echo */ | wc
+
echo */ | wc
  
 
-- ver último archivo modificado | Archivo más reciente
 
-- ver último archivo modificado | Archivo más reciente
ls -Art | tail -n 1
+
ls -Art | tail -n 1
  
 
--ver las últimas 10 líneas de archivos de texto
 
--ver las últimas 10 líneas de archivos de texto
tail <nombrearchivo>
+
tail <nombrearchivo>
  
  si deseas ver mas de 10 líneas ejecuta ejemplo ver ultimas 30 líneas
+
si deseas ver mas de 10 líneas ejecuta ejemplo ver ultimas 30 líneas
 
   tail -30 <nombrearchivo>
 
   tail -30 <nombrearchivo>
  
 
para ver los ultimos cambios que va teniendo el archivo, útil para ver logs, correo, etc
 
para ver los ultimos cambios que va teniendo el archivo, útil para ver logs, correo, etc
tail -f <nombredelarchivo>
+
tail -f <nombredelarchivo>
  
 
--ver primeras 10 lineas de archivos de texto
 
--ver primeras 10 lineas de archivos de texto
head <nombrearchivo>
+
head <nombrearchivo>
  
 
si deseas ver mas de 10 lineas ejecuta ejemplo ver las primeras 30 lineas
 
si deseas ver mas de 10 lineas ejecuta ejemplo ver las primeras 30 lineas
head -30 <nombrearchivo>
+
head -30 <nombrearchivo>
  
 
--Listar solo directorios
 
--Listar solo directorios
    ls -l|grep ^d
+
  ls -l|grep ^d
    ls -p |grep /
+
  ls -p |grep /
 
   ls -l | egrep '^d'
 
   ls -l | egrep '^d'
  
 
-- eliminar archivos con la extensión *.xxx en todo el disco
 
-- eliminar archivos con la extensión *.xxx en todo el disco
find / -type f -name "*.xxx" -exec rm {} \;
+
find / -type f -name "*.xxx" -exec rm {} \;
  
  
 
-- Eliminar folders / directorios tener PRECAUCION con la opcion -rf ya que puedes eliminar algo que no desees mejor asegurate antes de ejecutarlo
 
-- Eliminar folders / directorios tener PRECAUCION con la opcion -rf ya que puedes eliminar algo que no desees mejor asegurate antes de ejecutarlo
 
-- Borrar folders / directorios
 
-- Borrar folders / directorios
    rm -rf foldername
+
  rm -rf foldername
 
    
 
    
 
-- borrar folder vacios / directorios vacios
 
-- borrar folder vacios / directorios vacios
    rmdir <nombredelfolder>
+
  rmdir <nombredelfolder>
 +
 
 +
-- eliminar todos los archivos excepto un archivo o directorio, por ejemplo: eliminar todos los archivos del directorio actual excepto el directorio que se llama wiki
 +
shopt -s extglob
 +
rm -rf -v !("wiki")
  
 
--copia todo el contenido del CD rom al folder install
 
--copia todo el contenido del CD rom al folder install
    cp -av /mnt/cdrom /install
+
  cp -av /mnt/cdrom /install
  
 
--Buscar texto en archivos con grep
 
--Buscar texto en archivos con grep
    ejemplos:
+
Ejemplos:
    grep "spc_eee1.gif" *
+
grep "spc_eee1.gif" *
  
    grep -r -i "textoAbuscar" *.*
+
grep -r -i "textoAbuscar" *.*
    -r = Recursivo, osea se mete a los subfolders
+
-r = Recursivo, osea se mete a los subfolders<br>
    -i = ignora si estan en mayusculas o minusculas
+
-i = ignora si estan en mayusculas o minusculas<br>
  
 
-- Buscar texto en archivos y mostrar el número de línea
 
-- Buscar texto en archivos y mostrar el número de línea
 
   grep -nr textoabuscar
 
   grep -nr textoabuscar
  -r = recursivo
+
-r = recursivo<br>
  -n = regresa el número de línea donde se encontró el texto
+
-n = regresa el número de línea donde se encontró el texto<br>
 +
<br>
  
 +
-- El comando awk sirve para buscar y manipular datos en archivos de texto estructurado como archivos separados por coma (csv) o archivos separados por espacios
 +
 +
Por ejemplo para filtrar las IPs de un log de apache
 +
awk '{print $1}' access-hackvolution.log
 +
 +
En el ejemplo anterior se repetirán mucho las IPs para que solo aparezca una coincidencia, podemos emplear:
 +
 +
awk '{print $1}' access-hackvolution.log |sort |uniq
 +
 +
sort ordena los resultados y <br>
 +
uniq solo deja los resultados únicos
 +
 +
Otra cosa que podríamos necesitar, es el ver cuántas veces se repite una IP en el archivo:
 +
 +
awk '{print $1}' access-hackvolution.log |sort |uniq -c |sort -rn
 +
 +
uniq -c cuenta el número de coincidencias<br>
 +
sort -rn ordena en -reverse numerical- es decir de forma numérica del mayor al menor
 +
 
 
-- buscar texto en los scripts sh que contengan el texto user
 
-- buscar texto en los scripts sh que contengan el texto user
find / -name '*.sh' 2>/dev/null | xargs grep -i 'user'
+
find / -name '*.sh' 2>/dev/null | xargs grep -i 'user'
  
 
-- buscar los archivos con extensión .ksh, .sh, .pl .py .zsh .bash .bsh .sql
 
-- buscar los archivos con extensión .ksh, .sh, .pl .py .zsh .bash .bsh .sql
find / -type f \( -iname \*.ksh -o -iname \*.sh -o -iname \*.pl -o -iname \*.py -o -iname \*.zsh -o -iname \*.bash -o -iname \*.bsh -o -iname \*.sql \)
+
find / -type f \( -iname \*.ksh -o -iname \*.sh -o -iname \*.pl -o -iname \*.py -o -iname \*.zsh -o iname \*.bash -o -iname \*.bsh -o -iname \*.sql \)
  
 
-- Buscar archivos de texto que inicien con los caracteres #! Y que pertenezcan a cierto usuario
 
-- Buscar archivos de texto que inicien con los caracteres #! Y que pertenezcan a cierto usuario
find / -user $UID -type f | while read fn; do head -n1 "$fn" | grep -q "^#\!" && echo "$fn" && chmod 755 "$fn"; done
+
find / -user $UID -type f | while read fn; do head -n1 "$fn" | grep -q "^#\!" && echo "$fn" && chmod 755 "$fn"; done
  
 
-- buscar cadena de caracteres password en archivos script
 
-- buscar cadena de caracteres password en archivos script
grep --include=\*.{ksh,sh,pl,py,zsh,bash,bsh,sql} -rnw '/' -e "password"
+
grep --include=\*.{ksh,sh,pl,py,zsh,bash,bsh,sql} -rnw '/' -e "password"
  
 
-- otras opciones
 
-- otras opciones
Línea 135: Línea 163:
 
   cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"
 
   cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"
  
-- remover primer y último carácter  
+
-- remover primer y último carácter <br>
[A6014201]
+
[A6014201]<br>
[A6144792]
+
[A6144792]<br>
[A6005026]
+
[A6005026]<br>
cat lista.txt | cut -c 2- | sed 's/.$//' > clean-lista.txt
+
cat lista.txt | cut -c 2- | sed 's/.$//' > clean-lista.txt
A6014201
+
A6014201<br>
A6144792
+
A6144792<br>
A6005026
+
A6005026<br>
 
+
<br>
 
-- Para obtener las IPs válidas de un archivo de texto usando regular expresions RegEx:
 
-- Para obtener las IPs válidas de un archivo de texto usando regular expresions RegEx:
 
   grep -oE '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt
 
   grep -oE '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt
 
--Checar el sistema de inicio
 
--Checar el sistema de inicio
cat /etc/inittab
+
cat /etc/inittab
  
 
--montar un floppy con formato MSDOS
 
--montar un floppy con formato MSDOS
mount -t msdos /dev/fd0 /floppy
+
mount -t msdos /dev/fd0 /floppy
  
 
-- montar cd-rom
 
-- montar cd-rom
mount cd-rom
+
mount cd-rom
mount -t iso9660 /dev/cdrom /media/cdrom/
+
mount -t iso9660 /dev/cdrom /media/cdrom/
  
 
-- montar USB
 
-- montar USB
montar disco externo
+
montar disco externo
mount /dev/sdb1 /media/usb
+
mount /dev/sdb1 /media/usb
  
montar en otro directorio
+
montar en otro directorio
mount /dev/hda2 /home
+
mount /dev/hda2 /home
  
 
-- montar  particion  NTFS en linux
 
-- montar  particion  NTFS en linux
  mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force
+
mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force
  
 
-- checar si linux reconoció un disco o un hardware que se acaba de conectar?
 
-- checar si linux reconoció un disco o un hardware que se acaba de conectar?
dmesg
+
dmesg
dmesg |grep sdb
+
dmesg |grep sdb
  
 
-- descomprimir un archivo con extensión zip
 
-- descomprimir un archivo con extensión zip
tar -xzf [filename]
+
tar -xzf [filename]
  
 
-- descromprimir archivos .zip
 
-- descromprimir archivos .zip
unzip filename
+
unzip filename
  
 
-- listar archivos que se encuentran dentro del archivo zip
 
-- listar archivos que se encuentran dentro del archivo zip
unzip -l filename
+
unzip -l filename
  
 +
-- Como ejecutar un comando cada determinado tiempo
 +
  watch -n 300 df -h
 +
El anterior comando ejecuta cada 300 segundos el comando df -h
  
 
--Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora
 
--Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora
Línea 187: Línea 218:
  
 
Ejemplo archivo de configuracion CentOS
 
Ejemplo archivo de configuracion CentOS
HWADDR=00:08:A2:0A:BA:B8
+
HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
+
TYPE=Ethernet
BOOTPROTO=none
+
BOOTPROTO=none
IPADDR=192.168.2.203
+
IPADDR=192.168.2.203
PREFIX=24
+
PREFIX=24
GATEWAY=192.168.2.254
+
GATEWAY=192.168.2.254
DNS1=192.168.2.254
+
DNS1=192.168.2.254
DNS2=8.8.8.8
+
DNS2=8.8.8.8
DNS3=8.8.4.4
+
DNS3=8.8.4.4
DEFROUTE=yes
+
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
+
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
+
# Disable ipv6 #
IPV6INIT=no
+
IPV6INIT=no
NAME=eth0
+
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
+
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
+
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
+
DEVICE=eth0
ONBOOT=yes
+
ONBOOT=yes
 
-- Reinicar servicio de red sin hacer flush
 
-- Reinicar servicio de red sin hacer flush
 
   systemctl restart network
 
   systemctl restart network
Línea 224: Línea 255:
 
   find / -type f -name '*' -size 2G
 
   find / -type f -name '*' -size 2G
  
  -iname busca archivos sin ser sensitivo a mayusculas minusculas
+
-iname busca archivos sin ser sensitivo a mayusculas minusculas<br>
  -name busca archivos con el nombre siendo sensitivo a matyusculas minusculas. Si buscas por un archivo llamado "MiArchivo" y lo buscas con el siguiente    comando:
+
-name busca archivos con el nombre siendo sensitivo a matyusculas minusculas. Si buscas por un archivo llamado "MiArchivo" y lo buscas con el siguiente    comando:
 
     find / -name miarchivo (no lo encontraras) deberas usar el comando:
 
     find / -name miarchivo (no lo encontraras) deberas usar el comando:
 
     find / -iname miarchivo o bien find / -name MiArchivo
 
     find / -iname miarchivo o bien find / -name MiArchivo
Línea 232: Línea 263:
  
 
-- Para buscar todos los archivos "grandes" mayores a 20 Mb en todo el equipo
 
-- Para buscar todos los archivos "grandes" mayores a 20 Mb en todo el equipo
  find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
+
find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
  
 
-- Buscar archivos grandes o mayores a cierto tamaño
 
-- Buscar archivos grandes o mayores a cierto tamaño
  
 
-- Este comando encontrará los archivos en todo el disco duro que sean mayores a 100 Mb
 
-- Este comando encontrará los archivos en todo el disco duro que sean mayores a 100 Mb
    find / -size +102400k
+
find / -size +102400k
  
 
-- Buscar los archivos más grandes del directorio actual, regresa los 10 más grandes, modificar el número de head para traer más y menos archivos
 
-- Buscar los archivos más grandes del directorio actual, regresa los 10 más grandes, modificar el número de head para traer más y menos archivos
  du -hs * | sort -rh | head -10
+
du -hs * | sort -rh | head -10
  
 
-- Buscar los archivos más grandes del directorio actual incluyendo subdirectorios, regresa los 10 más grandes, modificar el número en head para regresar más o menos archivos
 
-- Buscar los archivos más grandes del directorio actual incluyendo subdirectorios, regresa los 10 más grandes, modificar el número en head para regresar más o menos archivos
Línea 247: Línea 278:
 
-- ver el tamaño de las carpetas ordenadas del más pequeño al más grande
 
-- ver el tamaño de las carpetas ordenadas del más pequeño al más grande
 
   du -hs * | sort -h
 
   du -hs * | sort -h
 +
 +
-- extraer IPs de un csv por ejemplo Rapid7 y quitar repetidas y ordenarlas en order númerico
 +
cat tercer_rango.csv|cut -d"," -f1|sort -u |sort -t . -k 3,3n -k 4,4n > tercer_rango.txt
  
 
-- Emplea el siguiente comando para ver los tamaños de los archivos:
 
-- Emplea el siguiente comando para ver los tamaños de los archivos:
Línea 258: Línea 292:
 
  find / -iname <inicionombre'*'>
 
  find / -iname <inicionombre'*'>
  
ejemplo:
+
Ejemplo:
  
 
  find / -iname 'bittorrent*'
 
  find / -iname 'bittorrent*'
  
  encontrara archivos con nombres como bittottent-course, bittorrent.mo, bittorrent-4.4.0, etc
+
encontrara archivos con nombres como bittottent-course, bittorrent.mo, bittorrent-4.4.0, etc
  
  
Mas info en: http://www.phpman.info/index.php/info/find
+
Mas info en: http://www.phpman.info/index.php/info/find <br>
ver linux wildcards http://www.codecoffee.com/tipsfor/articles/26-1.html
+
ver linux wildcards http://www.codecoffee.com/tipsfor/articles/26-1.html <br>
  
 
--Buscar en todos los archivos *.htm que tengan el texto "wants to contact you"
 
--Buscar en todos los archivos *.htm que tengan el texto "wants to contact you"
  
Find ./ -name *.htm |xargs grep "wants to contact you"
+
find ./ -name *.htm |xargs grep "wants to contact you"
 +
equivalente en windows find "spc_eee1.gif" *.*
  
equivalente en windows find "spc_eee1.gif" *.*
 
 
--Buscar archivos excluyendo / excluir un folder en especial, por ejemplo tmp
 
--Buscar archivos excluyendo / excluir un folder en especial, por ejemplo tmp
find / \( ! -name tmp -o -prune \) -name "file.rar" -print 2>/dev/null
+
find / \( ! -name tmp -o -prune \) -name "file.rar" -print 2>/dev/null
  
 
--Otro comando para buscar arvhivos es el siguiente aunque el disco duro debe estar indexado para que funcione correctamente, en caso de no encontrar el archivo buscado, emplear find que no requiere de un indice.
 
--Otro comando para buscar arvhivos es el siguiente aunque el disco duro debe estar indexado para que funcione correctamente, en caso de no encontrar el archivo buscado, emplear find que no requiere de un indice.
  
locate <nombredelarvhivoabuscar>
+
locate <nombredelarvhivoabuscar>
  
  
Línea 291: Línea 325:
 
   wget -r -np -R "index.html*" https://repkam09.com/files/packt/
 
   wget -r -np -R "index.html*" https://repkam09.com/files/packt/
  
-r = recursive
+
-r = recursive<br>
-np = no parent
+
-np = no parent<br>
-R = reject
+
-R = reject<br>
  
  
Línea 300: Línea 334:
 
-- cambiar fecha y hora
 
-- cambiar fecha y hora
 
  date MMDDhhmmyyyy
 
  date MMDDhhmmyyyy
  donde MM = mes DD = dia hh=hora mm= minutos yyyy= año
+
donde MM = mes<br>
 +
DD = dia<br>
 +
hh=hora <br>
 +
mm= minutos<br>
 +
yyyy= año<br>
  
por ejemplo para poner la fecha y hora a: 9:07pm del 31 de Mayo 2008
+
Por ejemplo para poner la fecha y hora a: 9:07pm del 31 de Mayo 2008
 
   date 053121072008
 
   date 053121072008
  
 
-- Mostrar la fecha actual en el formato aaaa-mm-dd
 
-- Mostrar la fecha actual en el formato aaaa-mm-dd
   date -I 2014-05-28
+
   date -I
  
 
-- Mostrar la fecha actual en formato aaaammddhhmm
 
-- Mostrar la fecha actual en formato aaaammddhhmm
   date +%Y%m%d%H%M$S
+
   date +%Y%m%d%H%M%S
  
 
-- Para cambiar la zona horaria (time zone)
 
-- Para cambiar la zona horaria (time zone)
1. Para Ubuntu: dpkg-reconfigure tzdata
+
1. Para Ubuntu:  
    http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/
+
dpkg-reconfigure tzdata
 +
http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/
  
 
1.- Firmado como root, verifica que time zone esta usando tu sistema con el comando "date". Veras algo como "Mon 17 Jan 2005 12:15:08 PM PST", PST en este caso es el timezone actual.
 
1.- Firmado como root, verifica que time zone esta usando tu sistema con el comando "date". Veras algo como "Mon 17 Jan 2005 12:15:08 PM PST", PST en este caso es el timezone actual.
Línea 320: Línea 359:
  
 
3.- Es buena idea respaldar la anterior configuracion de timezone copiando a una directorio diferente como:
 
3.- Es buena idea respaldar la anterior configuracion de timezone copiando a una directorio diferente como:
    mv /etc/localtime  /etc/localtime-old
+
mv /etc/localtime  /etc/localtime-old
  
 
4.- Crea un symbolic link desde el timezone apropiado a /etc/localtime. Ejemplo:
 
4.- Crea un symbolic link desde el timezone apropiado a /etc/localtime. Ejemplo:
    ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime
+
ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime
  
 
5.- Si tienes la utilería rdate, actualiza la hora actual ejecutando:
 
5.- Si tienes la utilería rdate, actualiza la hora actual ejecutando:
    /usr/bin/rdate -s time-a.nist.gov
+
/usr/bin/rdate -s time-a.nist.gov
  
 
6.- Configura la entrada de ZONE en el archivo /etc/sysconfig/clock (eje: ZONE="America/Mexico City")
 
6.- Configura la entrada de ZONE en el archivo /etc/sysconfig/clock (eje: ZONE="America/Mexico City")
  
 
7.- Configura el reloj del hardware ejecutando:
 
7.- Configura el reloj del hardware ejecutando:
    /sbin/hwclock --systohc
+
/sbin/hwclock --systohc
  
 
Pasos basados en: http://www.wikihow.com/Change-the-Timezone-in-Linux
 
Pasos basados en: http://www.wikihow.com/Change-the-Timezone-in-Linux
Línea 342: Línea 381:
 
--Enviar mensaje a otro usuario mediante comando
 
--Enviar mensaje a otro usuario mediante comando
 
  wall "Nada mas jugando"
 
  wall "Nada mas jugando"
 +
 +
-- Enviar mensaje a otra terminal directamente, esto es útil por ejemplo cuando tienes una terminal en modo gráfico que no recibe wall por no estar registrada como una terminal tal cual, el primer paso es sacar el ID de la terminal a la que le quieres enviar mensaje con el comando:
 +
tty
 +
Por ejemplo la respuesta podría ser:
 +
/dev/pts/7
 +
ya que conocemos el número lo ponemos así
 +
echo "Naa mas jugando" > /dev/pts/7
  
 
-- Desactivar la recepcion de mensajes con wall
 
-- Desactivar la recepcion de mensajes con wall
    mesg n
+
mesg n
 
 
-- para ver el estado de la recepcion de mensajes
 
    mesg
 
 
 
        is n
 
  
 
-- Para enviar un mail desde linea de comando
 
-- Para enviar un mail desde linea de comando
    echo "20 minutos para la junta" | /bin/mail -s "Meeting" micorreo@miservidor.com
+
echo "20 minutos para la junta" | /bin/mail -s "Meeting" micorreo@miservidor.com
  
 
-- compilar un programa en c
 
-- compilar un programa en c
  gcc -o nombreejecutable sourcecode.c
+
gcc -o nombreejecutable sourcecode.c
  
  
 
-- Kernel version, realese, sistema operativo en Fedora o Red Hat
 
-- Kernel version, realese, sistema operativo en Fedora o Red Hat
  uname -a
+
uname -a
  cat /etc/redhat-release
+
cat /etc/redhat-release
  
 
-- Version Ubuntu
 
-- Version Ubuntu
 
-- Version BackTrack
 
-- Version BackTrack
  lsb_release -a
+
lsb_release -a
  
 
--Checar tipo de procesador
 
--Checar tipo de procesador
Línea 371: Línea 412:
  
 
-- crear imagen .iso de un CD-ROM
 
-- crear imagen .iso de un CD-ROM
dd if=/dev/hdc of=/home/username/cdcopy.iso
+
dd if=/dev/hdc of=/home/username/cdcopy.iso
  
desmontar la unidad de cd rom primerto (ejemplo: umount /dev/hdc)
+
Desmontar la unidad de cd rom primero, ejemplo:  
otra opcion de crear imagen .iso es mkisofs
+
umount /dev/hdc
 +
otra opcion de crear imagen .iso es mkisofs
 
  mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/
 
  mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/
  
Línea 388: Línea 430:
  
 
--Ciclo for para realizar tareas repetitivas ejemplo ping a un rago de IPs desde el shell
 
--Ciclo for para realizar tareas repetitivas ejemplo ping a un rago de IPs desde el shell
    for i in $(seq 1 1 10); do ping 192.168.16.$i -c 1; done
+
for i in $(seq 1 1 10); do ping 192.168.16.$i -c 1; done
 
 
-Otra forma sería
 
    [root@supersnort ~]# for i in $(seq 20 -1 1)
 
    > do
 
    > echo $i
 
    > ping 192.168.16.$i -c 1
 
    > done
 
    20
 
    PING 192.168.16.20 (192.168.16.20) 56(84) bytes of data.
 
  
 +
--Otra forma sería
 +
 +
for i in $(seq 20 -1 1)
 +
do
 +
echo $i
 +
ping 192.168.16.$i -c 1
 +
done
 +
 
-ciclo for para ejecutar comandos que se leen desde un archivo
 
-ciclo for para ejecutar comandos que se leen desde un archivo
  for word in `cat notes.txt`; do bash -c $word; done;
+
for word in `cat notes.txt`; do bash -c $word; done;
  
 
-- ciclo for para hacer ping a varias IPs y ver cuales responden utiliza un tipo de grep or
 
-- ciclo for para hacer ping a varias IPs y ver cuales responden utiliza un tipo de grep or
for i in $(seq 241 1 254); do ping 10.10.10.$i -c 1; done | grep 'statistics\|packets'
+
for i in $(seq 241 1 254); do ping 10.10.10.$i -c 1; done | grep 'statistics\|packets'
  
 
-- ciclo while para ejecutar comandos que se leen desde un archivo
 
-- ciclo while para ejecutar comandos que se leen desde un archivo
  while read word; do bash -c $word; done < notes.txt
+
while read word; do bash -c $word; done < notes.txt
  
    --- 172.16.4.20 ping statistics ---
+
--- 172.16.4.20 ping statistics ---<br>
    1 packets transmitted, 0 received, 100% packet loss, time 0ms
+
1 packets transmitted, 0 received, 100% packet loss, time 0ms<br>
+
<br>
    19
+
19<br>
    PING 172.16.4.19 (192.168.16.19) 56(84) bytes of data.
+
PING 172.16.4.19 (192.168.16.19) 56(84) bytes of data.<br>
  
--Mover archivos uno por uno cuando aparece el error como:
+
--Mover archivos uno por uno cuando aparece el error como:<br>
    -bash: /bin/mv: Argument list too long
+
-bash: /bin/mv: Argument list too long
  
 
     for i in `find . -name ap\*`
 
     for i in `find . -name ap\*`
Línea 421: Línea 462:
 
     mv $i ..
 
     mv $i ..
 
     done
 
     done
 
///////////////// <FIN> Bash Shell /////////////
 
 
 
-- Mover muchos archivos por extension en caso de recibir el error: Too many arguments
 
-- Mover muchos archivos por extension en caso de recibir el error: Too many arguments
  find . -type f -name "*.txt" -exec mv {} /opt/movehere/ \;
+
find . -type f -name "*.txt" -exec mv {} /opt/movehere/ \;
  
 
--Cambiar extensiones en varios archivos
 
--Cambiar extensiones en varios archivos
  for f in *.htm; do mv $f `basename $f .htm`.html; done;
+
for f in *.htm; do mv $f `basename $f .htm`.html; done;
  
 
--Para iniciar en modo texto
 
--Para iniciar en modo texto
  editar el archivo /etc/inittab
+
editar el archivo /etc/inittab
  la linea que dice id:5:initdefault cambiar el 5 por 3.
+
la linea que dice id:5:initdefault cambiar el 5 por 3.
  
 
--cambiar el prompt bash
 
--cambiar el prompt bash
Línea 441: Línea 479:
  
 
-- Para copiar archivos de forma segura entre maquinas linux usando SCP o SFTP
 
-- Para copiar archivos de forma segura entre maquinas linux usando SCP o SFTP
Sftp y scp no requieren un demonio dedicado puesto que los dos programas se conectan a los servidores sshd.
+
Sftp y scp no requieren un demonio dedicado puesto que los dos programas se conectan a los servidores sshd.<br>
Para poder usar sftp y scp tienes que insertar la siguiente linea en el archivo de configuracion /etc/ssh/sshd_config (RedHat Linux).
+
Para poder usar sftp y scp tienes que insertar la siguiente linea en el archivo de configuracion /etc/ssh/sshd_config (RedHat Linux).<br>
Subsystem sftp /usr/libexec/openssh/sftp-server
+
Subsystem sftp /usr/libexec/openssh/sftp-server<br>
  
 
scp [opciones] origen destino
 
scp [opciones] origen destino
Línea 461: Línea 499:
  
 
-- Copiar todo el folder de un servidor remoto al directorio actual con llave privada
 
-- Copiar todo el folder de un servidor remoto al directorio actual con llave privada
scp -r -i /Users/lmoreno/MyDropbox/EC2/EC2.private root@stream.com:/var/www/html/content/user_1/shoutcast198/* .
+
scp -r -i /Users/lmoreno/MyDropbox/EC2/EC2.private root@stream.com:/var/www/html/content/user_1/shoutcast198/* .
  
 
-- Copiar un archivo local a servidor remoto con diferente puerto y llave privada
 
-- Copiar un archivo local a servidor remoto con diferente puerto y llave privada
scp -P 443 -i /Users/lmoreno/MyDropbox/EC2/Luisit0.private /Users/lmoreno/MyDropbox/EC2/EC2.private ubuntu@kolibers.com:/home/ubuntu
+
scp -P 443 -i /Users/lmoreno/MyDropbox/EC2/Luisit0.private /Users/lmoreno/MyDropbox/EC2/EC2.private ubuntu@kolibers.com:/home/ubuntu
  
 
-- Copiar todo el contenido de un folder / directorio
 
-- Copiar todo el contenido de un folder / directorio
  Copiar todo el directorio local /vmfs/volumes/datastore hacia un equipo remoto con IP 192.168.16.1
+
Copiar todo el directorio local /vmfs/volumes/datastore hacia un equipo remoto con IP 192.168.16.1
  
 
Ejemplo:
 
Ejemplo:
Línea 476: Línea 514:
 
  cd /etc/rc.d/init.d
 
  cd /etc/rc.d/init.d
 
  sh sshd stop
 
  sh sshd stop
  o bien
+
o bien
 
  service sshd stop
 
  service sshd stop
  
 
--Kill SSH sessions - Matar sesiones SSH
 
--Kill SSH sessions - Matar sesiones SSH
 
  netstat -tanp (Y localiza las lineas que dicen ESTABLISHED)
 
  netstat -tanp (Y localiza las lineas que dicen ESTABLISHED)
  -t = protocolo TCP
+
-t = protocolo TCP<br>
  -a = all sockets que escuchan y sockets que no escuchan
+
-a = all sockets que escuchan y sockets que no escuchan<br>
  -n = direcciones numericas
+
-n = direcciones numericas<br>
  -p = muestra el nombre y PID del proceso al cual pertenece el socket (requiere permisos de root)
+
-p = muestra el nombre y PID del proceso al cual pertenece el socket (requiere permisos de root)<br>
  
 
-El PID a matar es el que esta en la última columna y esta separado por una diagonal
 
-El PID a matar es el que esta en la última columna y esta separado por una diagonal
ejemplo:
+
ejemplo:<br>
tcp 0 1928 ::ffff:192.168.1.69:22 ::ffff:200.52.71.2:22161 ESTABLISHED 29460/sshd: lmoreno
+
tcp 0 1928 ::ffff:192.168.1.69:22 ::ffff:200.52.71.2:22161 ESTABLISHED 29460/sshd: lmoreno
 
  kill 29460
 
  kill 29460
  
No usar kill -9 si puedes evitarlo. Ya que no siempre permite a los demonios limpiar sus archivos temporales, bloqueos, etc. Usa kill -TERM PID o kill -15 PID
+
No usar kill -9 si puedes evitarlo. Ya que no siempre permite a los demonios limpiar sus archivos temporales, bloqueos, etc. Usa
 +
kill -TERM PID o kill -15 PID
  
-- Para que los usuarios que se queden logeados el sistema los saque en determinado tiempo o timeout y los usuarios no se queden firmados si no estan usando la terminal
+
-- Para que los usuarios que se queden logeados el sistema los saque en determinado tiempo o timeout y los usuarios no se queden firmados si no estan usando la terminal<br>
En /etc/ssh/sshd_config agregar las lineas
+
En /etc/ssh/sshd_config agregar las lineas
  
  ClientAliveInterval 600
+
ClientAliveInterval 600
  ClientAliveCountMax 3
+
ClientAliveCountMax 3
  
Esto dará un timeout de 30 minutos (600 sec x 3)
+
Esto dará un timeout de 30 minutos (600 sec x 3)
  
 
-- Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:
 
-- Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:
  vi /etc/ssh/sshd_config
+
vi /etc/ssh/sshd_config
  Localiza la siguiente entrada:   
+
Localiza la siguiente entrada:   
  
  #Port 22
+
#Port 22
  Cambiar por el número de puerto que deseas
+
Cambiar por el número de puerto que deseas
    Port 2995
+
Port 2995
  
  Reinicia el servicio
+
Reinicia el servicio
    service sshd reload
+
service sshd reload
  
  Prueba el acceso con el nuevo puerto
+
Prueba el acceso con el nuevo puerto
    ssh username@myhostnaname.com -p 2995
+
ssh username@myhostnaname.com -p 2995
  
 
Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto
 
Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto
Línea 520: Línea 559:
 
Code:
 
Code:
 
 
service ssh
+
service ssh
{
+
{
        disable = no
+
        disable = no
        socket_type            = stream
+
        socket_type            = stream
        type                    = UNLISTED
+
        type                    = UNLISTED
        port                    = 22
+
        port                    = 22
        protocol                = tcp
+
        protocol                = tcp
        wait                    = no
+
        wait                    = no
        user                    = root
+
        user                    = root
        server                  = /usr/sbin/sshd
+
        server                  = /usr/sbin/sshd
        server_args            = -i
+
        server_args            = -i
}
+
}
  
 
Cambiar "port = 22" por el nuevo puerto y reinicia el servicio
 
Cambiar "port = 22" por el nuevo puerto y reinicia el servicio
Línea 537: Línea 576:
 
En ocasiones se está detrás de un proxy y no se puede emplear SSH, para estos casos emplearemos una configuración y un paquete que se llama corkscrew (sacacorchos)
 
En ocasiones se está detrás de un proxy y no se puede emplear SSH, para estos casos emplearemos una configuración y un paquete que se llama corkscrew (sacacorchos)
  
-- Instalar corkscrew dependiendo de la distribución
+
-- Instalar corkscrew dependiendo de la distribución, corkscrew sirve para hacer tuner de SSH sobre HTTP
  Descargar corkscrew desde: http://www.agroman.net/corkscrew/
+
Descargar corkscrew desde:  
  cd Downloads
+
http://www.agroman.net/corkscrew/
  tar -xvzf corkscrew-x.y.tar.gz
+
cd Downloads
  cd corkscrew-x-y
+
tar -xvzf corkscrew-x.y.tar.gz
  ./configure --host=apple
+
cd corkscrew-x-y
  make
+
./configure --host=apple
  cp corkscrew $HOME/.ssh/
+
make
 +
cp corkscrew $HOME/.ssh/
  
 
-- descomprimir archivos gzip .gz
 
-- descomprimir archivos gzip .gz
gunzip /usr/share/wordlists/rockyou.txt.gz
+
gunzip /usr/share/wordlists/rockyou.txt.gz
  
 
-- descomprimir archivos .7z
 
-- descomprimir archivos .7z
  7za e hashcat-2.00.7z -ohashcat2
+
7za e hashcat-2.00.7z -ohashcat2
 
e = extract
 
e = extract
 
-ohashcat2 = descomprime el contenido en el directorio hashcat2
 
-ohashcat2 = descomprime el contenido en el directorio hashcat2
  
 
-- Editar el archivo  
 
-- Editar el archivo  
  vim $HOME/.ssh/config
+
vim $HOME/.ssh/config
  
 
-- y agregar esta líneas  
 
-- y agregar esta líneas  
ProxyCommand $HOME/.ssh/corkscrew ip-del-proxy puerto %h %p
+
ProxyCommand $HOME/.ssh/corkscrew ip-del-proxy puerto %h %p
  
Con frecuencia cuando estamos trabajando constantemente con servidores nos enfrentamos a la situación de que nos desconecta y la sesión se queda activa, entonces debemos reconectarnos y matar la sesión, en resumen es un dolor de muelas.
+
Con frecuencia cuando estamos trabajando constantemente con servidores nos enfrentamos a la situación de que nos desconecta y la sesión se queda activa, entonces debemos reconectarnos y matar la sesión, en resumen es un dolor de muelas.<br>
Para evitar lo anterior podemos configurar tanto al server como al cliente para que se mantengan comunicando a pesar de que nosotros dejemos de enviar comandos.
+
Para evitar lo anterior podemos configurar tanto al server como al cliente para que se mantengan comunicando a pesar de que nosotros dejemos de enviar comandos.<br>
Para servidores que son muy críticos se recomienda que no se modifique la configuración ya que es peligroso si la sesión se queda abierta.
+
Para servidores que son muy críticos se recomienda que no se modifique la configuración ya que es peligroso si la sesión se queda abierta.<br>
Del lado del servidor modificar el archivo /etc/ssh/sshd_config
+
Del lado del servidor modificar el archivo
  vim /etc/ssh/sshd_config
+
/etc/ssh/sshd_config
 +
vim /etc/ssh/sshd_config
 
Buscar las líneas siguientes y poner los valores que se muestran:
 
Buscar las líneas siguientes y poner los valores que se muestran:
 
   ClientAliveInterval 200
 
   ClientAliveInterval 200
 
   ClientAliveCountMax 3
 
   ClientAliveCountMax 3
  
ClientAliveInterval enviará paquetes nulos al cliente cada 200 segundos 3.33 segundos, en caso de que no reciba respuesta después de tres intentos se desconectará, así que en caso de que pierdas conectividad la sesión se mantendrá activa por más tiempo.
+
ClientAliveInterval enviará paquetes nulos al cliente cada 200 segundos 3.33 segundos, en caso de que no reciba respuesta después de tres intentos se desconectará, así que en caso de que pierdas conectividad la sesión se mantendrá activa por más tiempo.<br><br>
  
 
Del lado del cliente modificar  .ssh/config con los siguientes parámetros:
 
Del lado del cliente modificar  .ssh/config con los siguientes parámetros:
  vim .ssh/config
+
vim .ssh/config
  ServerAliveInterval 60
+
ServerAliveInterval 60
  ServerAliveCountMax 10
+
ServerAliveCountMax 10
 
 
El cliente esperará por 60 segundos (ServerAliveInterval) y enviará un "no-op null packet" al servidor esperando respuesta. Si la respuesta no llega, entonces volverá a intentar 10 veces, 10 (ServerAliveCountMax) por 60 (600 seconds = 10 minutos). Si el servidor no responde entonces el cliente finaliza la conexión.
 
 
 
Algunas veces solo una configuración del lado del cliente funciona otras es necesario modificar el servidor también.
 
 
 
  
 +
El cliente esperará por 60 segundos (ServerAliveInterval) y enviará un "no-op null packet" al servidor esperando respuesta. Si la respuesta no llega, entonces volverá a intentar 10 veces, 10 (ServerAliveCountMax) por 60 (600 seconds = 10 minutos). Si el servidor no responde entonces el cliente finaliza la conexión.<br><br>
  
 +
Algunas veces solo una configuración del lado del cliente funciona otras es necesario modificar el servidor también.<br>
  
 
///////////////// <FIN> SSH /////////////
 
///////////////// <FIN> SSH /////////////
Línea 587: Línea 625:
 
-- Procesos
 
-- Procesos
 
--Para ver todos los procesos incluso de otros usuarios
 
--Para ver todos los procesos incluso de otros usuarios
  ps -al
+
ps -al
  
 
--muestra los procesos y su crontab asociado
 
--muestra los procesos y su crontab asociado
  ps -auxfw
+
ps -auxfw
  
 
-- muestra los procesos que están consumiendo más ciclos de procesador
 
-- muestra los procesos que están consumiendo más ciclos de procesador
  top
+
top
    Para salir de top presionar q para más información sobre el comando unar man top
+
Para salir de top presionar q para más información sobre el comando unar man top
  
 
-- <FIN> Procesos
 
-- <FIN> Procesos
Línea 600: Línea 638:
 
-- Permisos de archivos
 
-- Permisos de archivos
 
-- Cambiar permisos
 
-- Cambiar permisos
  chmod u+wr,g+wr,o-r
+
chmod u+wr,g+wr,o-r
  chmod 664
+
chmod 664
    read = 4 o 22
+
read = 4 o 22<br>
    write = 2 o 21
+
write = 2 o 21<br>
    execute = 1 o 20
+
execute = 1 o 20<br>
 
+
<br>
Se asignan de la siguiente forma read/write/execute root/user/group
+
Se asignan de la siguiente forma read/write/execute root/user/group<br>
  
 
-- Por ejemplo para hacer un archivo ejecutable para todos:
 
-- Por ejemplo para hacer un archivo ejecutable para todos:
  chmod 111 <nombreDelArchivo>
+
chmod 111 <nombreDelArchivo>
  
 
-- Para asignar todos los permisos a root
 
-- Para asignar todos los permisos a root
  chmod 700 <nombreDelArchivo>
+
chmod 700 <nombreDelArchivo>
  
-- Para asignar todos los permisos a un archivo
+
-- Para asignar todos los permisos a un archivo (esto es peligroso, no lo deberías hacer, solo en casos extremos)
  chmod 777 <nombreDelArchivo>
+
chmod 777 <nombreDelArchivo>  
  
 
-- Para asignar control total a todos los usuarios en una carpeta llamada webdoc incluyendo todos los archivos y todas las subcarpetas
 
-- Para asignar control total a todos los usuarios en una carpeta llamada webdoc incluyendo todos los archivos y todas las subcarpetas
  chmod 777 -R webdoc/*
+
chmod 777 -R archivos/*
  Donde -R es recursivo es decir se mete a las carpetas y aplica el cambio en subcarpetas y archivos dentro de la carpeta raíz que en este caso fue webdoc
+
Donde -R es recursivo es decir se mete a las carpetas y aplica el cambio en subcarpetas y archivos dentro de la carpeta raíz que en este caso fue webdoc
  
 
-- clonar permisos de un archivo a otro, copiar permisos de un archivo a otro
 
-- clonar permisos de un archivo a otro, copiar permisos de un archivo a otro
  chown --reference=otherfile thisfile
+
chown --reference=otherfile thisfile
 
--crear un device file
 
--crear un device file
  mknod /dev/fd1 b 2 1
+
mknod /dev/fd1 b 2 1
  
 
--Cambiar owner
 
--Cambiar owner
  chown luis /carpeta/archivo
+
chown luis /carpeta/archivo
  chown luis.grupo /carpeta/archivo
+
chown luis.grupo /carpeta/archivo
  chgrp grupo /carpeta/archivo
+
chgrp grupo /carpeta/archivo
  
 
-- <FIN> Permisos de archivos
 
-- <FIN> Permisos de archivos
Línea 635: Línea 673:
 
-- Samba para compartir archivos con clientes Windows
 
-- Samba para compartir archivos con clientes Windows
 
-- config file
 
-- config file
  /etc/smb.conf
+
/etc/smb.conf
  /etc/samba/smb.conf en trixbox
+
/etc/samba/smb.conf en trixbox
  
 
-- Config basica compartir carpeta
 
-- Config basica compartir carpeta
  
[global]
+
[global]
workgroup = workgroup
+
workgroup = workgroup
server string = trixbox PBX
+
server string = trixbox PBX
local master = no
+
local master = no
domain master = no
+
domain master = no
preferred master = no
+
preferred master = no
password server = None
+
password server = None
guest ok = yes
+
guest ok = yes
guest account = root
+
guest account = root
security = SHARE
+
security = SHARE
dns proxy = no
+
dns proxy = no
  
[CSrecordings]
+
[CSrecordings]
path = /opt/backup/
+
path = /opt/backup/
guest ok = yes
+
guest ok = yes
writeable = no
+
writeable = no
create mask = 0777
+
create mask = 0777
  
 
-- <FIN> Samba para compartir archivos con clientes Windows
 
-- <FIN> Samba para compartir archivos con clientes Windows
Línea 664: Línea 702:
  
 
-- Copiar cd de musica al disco duro
 
-- Copiar cd de musica al disco duro
  yum install cdparanoia
+
yum install cdparanoia
  cdparanoia 5 track05.wav
+
cdparanoia 5 track05.wav
  
 
-- Convertir a mp3
 
-- Convertir a mp3
  lame track05.wav track05.mp3
+
lame track05.wav track05.mp3
  
  
 
//////////////////// Comprimir archivos, folders o carpetas ///////////////
 
//////////////////// Comprimir archivos, folders o carpetas ///////////////
 
--listar archivos o el contenido dentro del archivo zip
 
--listar archivos o el contenido dentro del archivo zip
  unzip -l nombre-archivo
+
unzip -l nombre-archivo
  
 
-- Comprimir archivos a formato zip
 
-- Comprimir archivos a formato zip
  gzip nombrearchivo
+
gzip nombrearchivo
  
 
-- Comprimor archivo en formato zip
 
-- Comprimor archivo en formato zip
  zip ips.zip ips.txt
+
zip ips.zip ips.txt
  
 
-- Comprimir archivos  
 
-- Comprimir archivos  
  tar -zcvf archive_name.tar.gz directory_to_compress
+
tar -zcvf archive_name.tar.gz directory_to_compress
-z gzip -gunzip -ungzip
+
-z gzip -gunzip -ungzip<br>
-c create cear nuevo archivo
+
-c create cear nuevo archivo<br>
-v verbose desplegar info en la pantalla
+
-v verbose desplegar info en la pantalla<br>
-f file nombre del archivo
+
-f file nombre del archivo<br>
 +
<br>
 +
-- Comprimir directorios, folders, carpetas en formato gzip
 +
zip -qq -R archivozip directorio
 +
Este comando comprimira todo el contenido del directorio incluyendo los subdirectorios en el archivo "archivozip"
 +
o
 +
zip -qq -R archivozip
 +
Este comando comprimira todo el contenido del directorio actual incluyendo subdirectorios
 +
qq = (silent o silencioso)<br>
 +
R  = Recursivo, que incluye los subdirectorios<br>
  
-- Comprimir directorios, folders, carpetas en formato gzip
 
  zip -qq -R archivozip directorio
 
  Este comando comprimira todo el contenido del directorio incluyendo los subdirectorios en el archivo "archivozip"
 
    o
 
  zip -qq -R archivozip
 
  Este comando comprimira todo el contenido del directorio actual incluyendo subdirectorios
 
  qq = (silent o silencioso)
 
  R  = Recursivo, que incluye los subdirectorios
 
 
-- Comprimir archivos con extension .html
 
-- Comprimir archivos con extension .html
  find . -name "*.html" | xargs zip HTMLs-Nessus
+
find . -name "*.html" | xargs zip HTMLs-Nessus
  
 
No es necesario poner la extensión .zip ya que zip lo hace por nosotros
 
No es necesario poner la extensión .zip ya que zip lo hace por nosotros
  
 
-- Descomprimir el directorio
 
-- Descomprimir el directorio
  unzip -qq archive -d ruta-directorio
+
unzip -qq archive -d ruta-directorio
  Este comando descomprimira o extraera el contenido del archivo dentro de la ruta indicada en "ruta-directorio"
+
Este comando descomprimira o extraera el contenido del archivo dentro de la ruta indicada en "ruta-directorio"
 
 
 
Atencion: Si el archivo es muy grande (Gbyte) esto representa un gran problema para linux.
 
Atencion: Si el archivo es muy grande (Gbyte) esto representa un gran problema para linux.
Línea 709: Línea 748:
  
 
-- Descomprimir archivos formato tar .tar.bz2
 
-- Descomprimir archivos formato tar .tar.bz2
  tar -xvjf file.tar.bz2
+
tar -xvjf file.tar.bz2
    x - extract, v - verbose, j - bzip2, f - file
+
x - extract<br>
 +
v - verbose<br>
 +
j - bzip2<br>
 +
f - file<br>
  
 
-- Descomprimir archivos .tar
 
-- Descomprimir archivos .tar
  tar -xvf foo.tar
+
tar -xvf foo.tar
  
 
-- Descromprimir archivos .gz
 
-- Descromprimir archivos .gz
  gunzip archivo.gz
+
gunzip archivo.gz
  
 
-- Descromprimir archivos .zip
 
-- Descromprimir archivos .zip
  unzip nombre-archivo
+
unzip nombre-archivo
  
 
-- Descomprimir archivos rar
 
-- Descomprimir archivos rar
  instalar unrar con yum
+
instalar unrar con yum
    yum install unrar
+
yum install unrar
  luego ejecutar
+
luego ejecutar
    unrar x archivo.rar
+
unrar x archivo.rar
  
 
//////////////////// <FIN> Comprimir archivos, folders o carpetas ///////////////
 
//////////////////// <FIN> Comprimir archivos, folders o carpetas ///////////////
Línea 733: Línea 775:
  
 
Pon un password con el comando:
 
Pon un password con el comando:
  vncpasswd
+
vncpasswd
  
 
Editar el archivo
 
Editar el archivo
  /etc/sysconfig/vncservers
+
/etc/sysconfig/vncservers
  
 
Habilita el servicio con
 
Habilita el servicio con
  chkconfig vncserver on
+
chkconfig vncserver on
  
 
Inicia el servicio con
 
Inicia el servicio con
  service vncserver start
+
service vncserver start
  
 
Edita el archivo siguiente si deseas una sesion mas avanzada que solo twm y un xterm
 
Edita el archivo siguiente si deseas una sesion mas avanzada que solo twm y un xterm
  /home/username/.vnc/xstartup
+
/home/username/.vnc/xstartup
 
-- <FIN> Activar VNC Server Pasos rapidos
 
-- <FIN> Activar VNC Server Pasos rapidos
 
   
 
   
 
--Concatenar archivos en uno solo
 
--Concatenar archivos en uno solo
    cat *.csv >> archivoconcatenado.csv
+
cat *.csv >> archivoconcatenado.csv
  
 
-- Ver la historia de comandos ejecutados
 
-- Ver la historia de comandos ejecutados
  history
+
history
  
 
--Lista de comandos en el history file del 125 al 130
 
--Lista de comandos en el history file del 125 al 130
  fc -l 125 130
+
fc -l 125 130
 +
 
 +
-- Ver el historial de comandos con fecha y hora
 +
fc -li 100
 +
 
 +
-- Formato de hora y fecha para history
 +
HISTTIMEFORMAT="%Y-%m-%d %T "
  
 
--Ejecutar comandos del historial history
 
--Ejecutar comandos del historial history
    !n
+
!n
  Ejemplo para ejecutar el comando 415: !415
+
Ejemplo para ejecutar el comando 415: !415
  
 
--Limpiar historial de comandos o command history
 
--Limpiar historial de comandos o command history
  history -c
+
history -c
  o bien editar archivo
+
o bien editar archivo
  ~/.bash_history
+
~/.bash_history
  
 
--Desactivar activar SELinux
 
--Desactivar activar SELinux
  echo 1 >/selinux/enforce otras versiones de linux
+
echo 1 >/selinux/enforce otras versiones de linux
  setenforce 0 #desactivar en Red Hat
+
setenforce 0 #desactivar en Red Hat
  setenforce 1 #activar en Red Hat
+
setenforce 1 #activar en Red Hat
  
 
--GUI en texto o XWindow- Modificar Firewall
 
--GUI en texto o XWindow- Modificar Firewall
  system-config-securitylevel
+
system-config-securitylevel
  
 
-- Crear un alias
 
-- Crear un alias
  alias ll='ls -lh --color=tty'
+
alias ll='ls -lh --color=tty'
  
 
Ejemplos alias:
 
Ejemplos alias:
  alias logseg='less /var/log/secure'
+
alias logseg='less /var/log/secure'
  alias tlogseg='tail -20 /var/log/secure'
+
alias tlogseg='tail -20 /var/log/secure'
  
 
--Hacer un alias persistente
 
--Hacer un alias persistente
 
Poner el comando dentro del archivo .bashrc ejemplo:
 
Poner el comando dentro del archivo .bashrc ejemplo:
  vi /home/<nombredeusuario>/.bashrc
+
vi /home/<nombredeusuario>/.bashrc
  
 
incluir la linea de alias en el archivo
 
incluir la linea de alias en el archivo
  
# .bashrc
+
# .bashrc
# User specific aliases and functions
+
# User specific aliases and functions
alias rm='rm -i'
+
alias rm='rm -i'
alias cp='cp -i'
+
alias cp='cp -i'
alias mv='mv -i'
+
alias mv='mv -i'
alias 174='ssh lmoreno@200.52.71.174'
+
alias 174='ssh lmoreno@200.52.71.174'
  
 
-- Remover un alias
 
-- Remover un alias
  unalias ll
+
unalias ll
  
 
--Buscar reemplazar y/o eliminar texto en archivos
 
--Buscar reemplazar y/o eliminar texto en archivos
 
Este comando busca el string lname,fname y elimina la linea donde se encuentre en el arvhivo csvfile.csv y crea el archivo noheaders.csv sin dichas lineas.
 
Este comando busca el string lname,fname y elimina la linea donde se encuentre en el arvhivo csvfile.csv y crea el archivo noheaders.csv sin dichas lineas.
  
  sed -e '/string-aqui/d' /opt/archivo-origen.csv > archivodestino.csv
+
sed -e '/string-aqui/d' /opt/archivo-origen.csv > archivodestino.csv
 +
 
 +
-- Eliminar el caracter CR o el retorno de carro de Windows para convertirlo en tipo Linux
 +
sed -i 's/\r$//' nombredelarchivo.txt
 +
 
 +
-- Busca un patron y borra desde el patron hasta el final del archivo
 +
sed -i '/mfa/,$d' ~/.aws/credentials
  
 
--Archivo para cambiar la resolucion de pantalla
 
--Archivo para cambiar la resolucion de pantalla
  /etc/X11/xorg.conf
+
/etc/X11/xorg.conf
  
 
////////////////// Puertos y servicios asociados ///////////////////////
 
////////////////// Puertos y servicios asociados ///////////////////////
Línea 813: Línea 867:
  
 
-- Conexiones establecidas  
 
-- Conexiones establecidas  
netstat -pn -A inet
+
netstat -pn -A inet
  
 
-- Conexiones en escucha  
 
-- Conexiones en escucha  
netstat -lpn -A inet
+
netstat -lpn -A inet
 
 
netstat -lantp
 
  -l listening
 
  -a todas las conexiones activas con nombre de servicio
 
  -n todas las conexiones activas con puertos numéricos
 
  -t tcp
 
  -p PID/program
 
  -A inet solo queremos ver protocolos relacionados con la familia inet, es decir solo raw, tcp y udp, no queremos ver nada acerca de los sockets Unix que son para procesos de intercomunicación del sistema operativo
 
 
 
 
 
 
 
  
 +
netstat -lantp
 +
-l listening
 +
-a todas las conexiones activas con nombre de servicio
 +
-n todas las conexiones activas con puertos numéricos
 +
-t tcp
 +
-p PID/program
 +
-A inet solo queremos ver protocolos relacionados con la familia inet, es decir solo raw, tcp y udp, no queremos ver nada acerca de los sockets Unix que son para procesos de intercomunicación del sistema operativo
  
lsof -iTCP -sTCP:LISTEN
+
lsof -iTCP -sTCP:LISTEN
lsof -i
+
lsof -i
  
 
Otro metodo es usar nmap:
 
Otro metodo es usar nmap:
Línea 837: Línea 887:
 
con el comando anterior veremos un resultado como el siguiente:
 
con el comando anterior veremos un resultado como el siguiente:
  
*******
+
*******
  
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
+
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
+
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
+
(The 1596 ports scanned but not shown below are in state: closed)
Port State Service
+
Port State Service
22/tcp open ssh
+
22/tcp open ssh
111/tcp open sunrpc
+
111/tcp open sunrpc
515/tcp open printer
+
515/tcp open printer
834/tcp open unknown
+
834/tcp open unknown
6000/tcp open X11
+
6000/tcp open X11
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
+
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
  
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
+
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
*******
+
*******
  
 
Para identificar el servicio que aparece como unknown (desconocido) ejecuta:
 
Para identificar el servicio que aparece como unknown (desconocido) ejecuta:
  cat /etc/services | grep 834
+
cat /etc/services | grep 834
  
  
 
Sin embargo este comando puede no regresar resultados esto indica que mientas el puerto esta en el rango de puertos registrados (0-1024) y requiere permisos de root para ejecutarse, no esta asociado con ningun servicio
 
Sin embargo este comando puede no regresar resultados esto indica que mientas el puerto esta en el rango de puertos registrados (0-1024) y requiere permisos de root para ejecutarse, no esta asociado con ningun servicio
 
Pero lo siguiente que se puede hacer es usar netstat o lsof para conocer el uso del puerto
 
Pero lo siguiente que se puede hacer es usar netstat o lsof para conocer el uso del puerto
  netstat -anp | grep 834
+
netstat -anp | grep 834
  lsof -i | grep 834
+
lsof -i | grep 834
  
 
--Regresa el numero de proceso que esta usando determinada aplicacion
 
--Regresa el numero de proceso que esta usando determinada aplicacion
  pgrep sendmail
+
pgrep sendmail
  
 
-- Grep y perl más avanzado con ejemplo de nmap busca los sistemas operativos que son vulnerables a un escaneo tipo window
 
-- Grep y perl más avanzado con ejemplo de nmap busca los sistemas operativos que son vulnerables a un escaneo tipo window
  
cat  nmap-os-db | perl -ne 'while(<>) { chomp;if (/^fingerprint\s+([^\#]+)/i) { if (defined($owin) and defined($cwin) and $owin ne $cwin) { print "$oname ($owin vs. $cwin)\n";} $oname=$1;undef($cwin);undef($owin);} elsif (/^T(4|6)\(.*W=([^%]+)/) { if ($1 eq 4){$owin=$2;} else { $cwin = $2; }}}' | sort -f
+
cat  nmap-os-db | perl -ne 'while(<>) { chomp;if (/^fingerprint\s+([^\#]+)/i) { if (defined($owin) and defined($cwin) and $owin ne $cwin) { print "$oname ($owin vs. $cwin)\n";} $oname=$1;undef($cwin);undef($owin);} elsif (/^T(4|6)\(.*W=([^%]+)/) { if ($1 eq 4){$owin=$2;} else { $cwin = $2; }}}' | sort -f
  
 
//////////// Fin puertos y servicios asociados ///////////////////////
 
//////////// Fin puertos y servicios asociados ///////////////////////
  
 
-- Alias de destinatarios de correo electronico email alias
 
-- Alias de destinatarios de correo electronico email alias
  vi /etc/aliases
+
vi /etc/aliases
  
 
despues de editar este archivo ejecutar el comando, para que se genere el archivo en formato que sendmail pueda leer
 
despues de editar este archivo ejecutar el comando, para que se genere el archivo en formato que sendmail pueda leer
  newaliases
+
newaliases
  
 
-- Checar la temperatura en laptops y/o equipos que tengan soporte ACPI
 
-- Checar la temperatura en laptops y/o equipos que tengan soporte ACPI
  acpi -t
+
acpi -t
  
 
-- Checar si hay link o conexion en la tarjeta de red y a que velocidad se amarro la tarjeta por default eth0
 
-- Checar si hay link o conexion en la tarjeta de red y a que velocidad se amarro la tarjeta por default eth0
Línea 892: Línea 942:
  
 
--Bloquear un host especifico iptables
 
--Bloquear un host especifico iptables
iptables -I INPUT -s 192.168.16.8 -j DROP
+
iptables -I INPUT -s 192.168.16.8 -j DROP
  
 
--Permitir acceso a un puerto especifico e IPs específicas, bloquear el resto
 
--Permitir acceso a un puerto especifico e IPs específicas, bloquear el resto
Línea 905: Línea 955:
 
   iptables -L
 
   iptables -L
  
-- Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)
+
-- Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)<br>
  Permitir momentáneamente una IP para que acceda al servidor FTP
+
Permitir momentáneamente una IP para que acceda al servidor FTP
  /sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp --dport 21 -j ACCEPT
+
/sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp --dport 21 -j ACCEPT
    --Para borrarla después de las pruebas
+
--Para borrarla después de las pruebas
      /sbin/iptables -t filter  -D INPUT 1
+
/sbin/iptables -t filter  -D INPUT 1
  
 
//////////////// <FIN> IPTABLES ////////////////////
 
//////////////// <FIN> IPTABLES ////////////////////
Línea 918: Línea 968:
 
---------------- administracion de usuarios -------------------
 
---------------- administracion de usuarios -------------------
 
--agregar usuario / crear usuario
 
--agregar usuario / crear usuario
  useradd <nombreusuario>
+
useradd <nombreusuario>
  
 
-- cambiar password
 
-- cambiar password
  passwd <nombreusuario>
+
passwd <nombreusuario>
  
 
Ejemplo:
 
Ejemplo:
  useradd -c "Luis Moreno" morenol
+
useradd -c "Luis Moreno" morenol
  
    -c = campo GECOS el cual es usado regularmente para la descripcion del usuario
+
-c = campo GECOS el cual es usado regularmente para la descripcion del usuario<br>
    passwd mi_password
+
passwd mi_password
  
 
-- Otro ejemplo sin embargo varias de las opciones ya son ejecutadas por default en RedHat, Fedora, CentOS, se recomienda usar el ejemplo anterior
 
-- Otro ejemplo sin embargo varias de las opciones ya son ejecutadas por default en RedHat, Fedora, CentOS, se recomienda usar el ejemplo anterior
   /usr/sbin/useradd -d /home/dsantos -s /bin/bash -c "Dianko Santos" dsantos && mkdir /home/dsantos && chown dsantos /home/dsantos && passwd elDiankus
+
   /usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno && passwd mysupapassw0rd
  
 
-- Mismo que el anterior pero sin establecer el password para mayor seguridad
 
-- Mismo que el anterior pero sin establecer el password para mayor seguridad
Línea 936: Línea 986:
  
 
--borrar usuario
 
--borrar usuario
deluser <nombredeusuario>
+
deluser <nombredeusuario>
  
 
Ejemplo:
 
Ejemplo:
  
  deluser -r dsantos
+
deluser -r dsantos
  -r = remueve el directorio home del usuario y el mailbox del usuario
+
-r = remueve el directorio home del usuario y el mailbox del usuario
  
 
--Ver usuarios del sistema
 
--Ver usuarios del sistema
  cat /etc/passwd
+
cat /etc/passwd
  
 
--Ver grupos del sistema
 
--Ver grupos del sistema
  cat /etc/group
+
cat /etc/group
  
 
--Agregar un grupo
 
--Agregar un grupo
  groupadd <nombredelgrupo>
+
groupadd <nombredelgrupo>
  
 
-- Para bloquear un usuario o para desactivar usuario
 
-- Para bloquear un usuario o para desactivar usuario
Línea 956: Línea 1006:
  
 
-- Para bloquear con el comando passwd
 
-- Para bloquear con el comando passwd
  passwd -l <nombreUsuario>
+
passwd -l <nombreUsuario>
  
 
--Agregar un usuario a un grupo existente
 
--Agregar un usuario a un grupo existente
 
Por ejemplo para agregar el usuario luis al grupo secundario/suplementario web con el comando usermod
 
Por ejemplo para agregar el usuario luis al grupo secundario/suplementario web con el comando usermod
  usermod -a -G web luis
+
usermod -a -G web luis
  
 
-- cambiar el grupo primario de un usuario
 
-- cambiar el grupo primario de un usuario
  usermod -g www luis
+
usermod -g www luis
  
 
------------- <FIN> Manejo de usuarios -------------------
 
------------- <FIN> Manejo de usuarios -------------------
Línea 972: Línea 1022:
  
  
# Password aging controls:
+
# Password aging controls:
#
+
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
+
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
+
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
+
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
+
# PASS_WARN_AGE Number of days warning given before a password expires.
#
+
#
# En español
+
# En español
# PASS_MAX_DAYS Numero maximo de dias que un password puede ser usado
+
# PASS_MAX_DAYS Numero maximo de dias que un password puede ser usado
# PASS_MIN_DAYS Numero minimo de dias permitidos para poder cambiar un password
+
# PASS_MIN_DAYS Numero minimo de dias permitidos para poder cambiar un password
# PASS_MIN_LEN Numero minimo de caracteres permitidos para un password
+
# PASS_MIN_LEN Numero minimo de caracteres permitidos para un password
# PASS_WARN_AGE Numero de dias para envio de un aviso de que el password va a expirar
+
# PASS_WARN_AGE Numero de dias para envio de un aviso de que el password va a expirar
#
+
#
# Ver ejemplo abajo
+
# Ver ejemplo abajo
  
  
PASS_MAX_DAYS 60
+
PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
+
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
+
PASS_MIN_LEN 8
PASS_WARN_AGE 10
+
PASS_WARN_AGE 10
  
  
  
Para cuentas que fueron creadas sin una politica de passwords el comando "chage" puede ser usado para crear una. Para hacer obligatorio el uso de passwords robustos, necesitas agregar el modulo pam_cracklib.so al grupo password management en /etc/pam.conf (o la definicion aplicable en /etc/pam.d) La administracion de passwords es algo tedioso, pero es una de las tareas mas importantes para reforzar la seguridad de un servidor.
+
Para cuentas que fueron creadas sin una politica de passwords el comando "chage" puede ser usado para crear una. Para hacer obligatorio el uso de passwords robustos, necesitas agregar el modulo pam_cracklib.so al grupo password management en /etc/pam.conf (o la definicion aplicable en /etc/pam.d) La administracion de passwords es algo tedioso, pero es una de las tareas mas importantes para reforzar la seguridad de un servidor.<br>
Esta al pendiente a los documentos de Tsares donde se explican los pasos para reforzar la seguridad de servidores Linux.
+
Esta al pendiente a los documentos de Tsares donde se explican los pasos para reforzar la seguridad de servidores Linux.<br>
  
 
------------------- <FIN> Politicas de password ---------------------
 
------------------- <FIN> Politicas de password ---------------------
Línea 1003: Línea 1053:
  
 
-- Para obtener informacion de DNS, IPs, MX records, etc
 
-- Para obtener informacion de DNS, IPs, MX records, etc
   host -a www.tsares.net
+
   host -a www.luismoreno.io
  -a equivale a -v -t * "query type all"
+
-a equivale a -v -t * "query type all"
  
 
   dig any www.tsares.net
 
   dig any www.tsares.net
  -any = query type any
+
-any = query type any
  
 
-- Para hacer un reverse lookup es decir tengo la IP pero quiero saber cual es el nombre que tiene asignado
 
-- Para hacer un reverse lookup es decir tengo la IP pero quiero saber cual es el nombre que tiene asignado
 
   dig -x <direccion IP>
 
   dig -x <direccion IP>
 
ejemplo:
 
ejemplo:
  dig -x 205.178.145.65
+
dig -x 205.178.145.65
  
 
-- para regresar solo la información que nos interesa sin la información de dig usamos +noall +answer en ese orden
 
-- para regresar solo la información que nos interesa sin la información de dig usamos +noall +answer en ese orden
  dig +noall +answer -x 147.167.64.245
+
dig +noall +answer -x 147.167.64.245
  
 
-- para mostrar todas las entradas y regresar solo información útil enviar el siguiente comando
 
-- para mostrar todas las entradas y regresar solo información útil enviar el siguiente comando
  dig +multiline +noall +answer +nocmd kolibers.com ANY
+
dig +multiline +noall +answer +nocmd kolibers.com ANY
  
 
-- Extraer CD u otra media desde el shell
 
-- Extraer CD u otra media desde el shell
  eject #Sin parámetros extraerá la media por default que en la mayoría de los casos es el cdrom
+
eject #Sin parámetros extraerá la media por default que en la mayoría de los casos es el cdrom
   eject cdrom #extrae el cdrom
+
   eject cdrom
  
 
-- Servicios que pueden ser desactivados pues regularmente no se usan
 
-- Servicios que pueden ser desactivados pues regularmente no se usan
  cups - servicios de impresion en linux - desactívalo si no imprimes en linux
+
cups - servicios de impresion en linux - desactívalo si no imprimes en linux
  autofs - automount para usb drives, floppy's, cdrom's etc. - no lo desactives si quieres que automonte tu flash card, etc
+
autofs - automount para usb drives, floppy's, cdrom's etc. - no lo desactives si quieres que automonte tu flash card, etc
  apmd - estado de la batería, puede apagar el sistema si la bateria esta baja - desactivalo si no usas una laptop
+
apmd - estado de la batería, puede apagar el sistema si la bateria esta baja - desactivalo si no usas una laptop
  isdn - provee servicios de isdn - desactívalo si no usas isdn para conectarte a otra red
+
isdn - provee servicios de isdn - desactívalo si no usas isdn para conectarte a otra red
  
 
Lista con servicios, demonios, procesos, frecuentes y su explicacion: http://www.comptechdoc.org/os/linux/how ... vices.html
 
Lista con servicios, demonios, procesos, frecuentes y su explicacion: http://www.comptechdoc.org/os/linux/how ... vices.html
 
-- Desactivar un proceso o servicio para que no se ejecute al iniciar el sistema
 
-- Desactivar un proceso o servicio para que no se ejecute al iniciar el sistema
  chkconfig <servicio> off
+
chkconfig <servicio> off
 
-- Listar servicios activos y apagados del sistema
 
-- Listar servicios activos y apagados del sistema
  chkconfig --list
+
chkconfig --list
  
  
Línea 1040: Línea 1090:
  
 
-- Instalar servidor telnet (no se recomienda usar telnet ya que es inseguro, mejor utiliza ssh para entrar remotamente a tu sistema Linux
 
-- Instalar servidor telnet (no se recomienda usar telnet ya que es inseguro, mejor utiliza ssh para entrar remotamente a tu sistema Linux
  yum install telnet-server telnet
+
yum install telnet-server telnet
  up2date telnet-server telnet
+
up2date telnet-server telnet
  
 
-- Ver y cambiar configuración telnet
 
-- Ver y cambiar configuración telnet
  vi /etc/xinetd.d/telnet
+
vi /etc/xinetd.d/telnet
  
 
-- Cambiar puerto donde escucha telnet por default (23) al puerto 50005 (o el que se desee)
 
-- Cambiar puerto donde escucha telnet por default (23) al puerto 50005 (o el que se desee)
  /usr/sbin/in.telnetd -debug 50005
+
/usr/sbin/in.telnetd -debug 50005
  
 
-- Desinstalar telnet
 
-- Desinstalar telnet
  rpm -q telnet
+
rpm -q telnet
  rpm -e telnet
+
rpm -e telnet
  
 
/////////////////// <FIN> Servicio Telnet ////////////////////////////
 
/////////////////// <FIN> Servicio Telnet ////////////////////////////
Línea 1057: Línea 1107:
  
  
-- Checar si el hash md5 es correcto para un archivo
+
-- Crear un hash de un archivo
 
   md5sum <nombredelarchivo>
 
   md5sum <nombredelarchivo>
 
comparar el resultado con el archivo md5.txt que viene acompanado con el archivo
 
 
  
 
//////////////////// Usando BitTorrent //////////////////////
 
//////////////////// Usando BitTorrent //////////////////////
 
-- Instala BitTorrent con el comando
 
-- Instala BitTorrent con el comando
  yum install bittorrent
+
yum install bittorrent
  
Descarga tu archivo .torrent desde algun sitio como www.isohunt.com, www.bittorrent.com
+
Descarga tu archivo .torrent desde algun sitio como www.isohunt.com, www.bittorrent.com<br>
  
  ejemplo: manuallinux.torrent
+
ejemplo: manuallinux.torrent
  
 
-- Para comenzar la descarga Ejecuta el comando
 
-- Para comenzar la descarga Ejecuta el comando
  
  bittorrent-curse manuallinux.torrent
+
bittorrent-curse manuallinux.torrent
 
espera un poco para que la descarga inicie y al finalizar presiona la letra "q"
 
espera un poco para que la descarga inicie y al finalizar presiona la letra "q"
  
 
-- Empleando el cliente desde la línea de comando
 
-- Empleando el cliente desde la línea de comando
  sudo transmission-cli -w /home/ubuntu/tpb -p 50000 magnet:?xt=urn:btih:aa0f51e1fbe286d935c5674ac0e2f3de62362ccf&dn=linux.manual&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337
+
sudo transmission-cli -w /home/ubuntu/tpb -p 50000 magnet:?xt=urn:btih:aa0f51e1fbe286d935c5674ac0e2f3de62362ccf&dn=linux.manual&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337
  
 
Donde:
 
Donde:
Línea 1095: Línea 1142:
  
 
Si lo tienes instalado por default y tu sistema esta en ingles, descarga el diccionario en español más actualizado ejemplo:
 
Si lo tienes instalado por default y tu sistema esta en ingles, descarga el diccionario en español más actualizado ejemplo:
  wget ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell-es-0.50-2.tar.bz2
+
wget ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell-es-0.50-2.tar.bz2
  
 
Descomprime el archivo e instala
 
Descomprime el archivo e instala
  tar -xvjf aspell-es-0.50-2.tar.bz2
+
tar -xvjf aspell-es-0.50-2.tar.bz2
  cd aspell-es-0.50-2
+
cd aspell-es-0.50-2
  make
+
make
  make install
+
make install
  
 
Ahora podrás checar la ortografia de un archivo de texto ejemplo:
 
Ahora podrás checar la ortografia de un archivo de texto ejemplo:
  aspell -c --lang=sp <nombredelarchivo>
+
aspell -c --lang=sp <nombredelarchivo>
  
 
//////////// <FIN> Checar ortografia en Linux /////////////////////
 
//////////// <FIN> Checar ortografia en Linux /////////////////////
  
 
-- Convertir archivo en formato Windows o DOS con fines de linea CR LF a estilo unix con fines de linea LF
 
-- Convertir archivo en formato Windows o DOS con fines de linea CR LF a estilo unix con fines de linea LF
  tr -d '\r' < archivoDOS > archivoUNIX-LINUX
+
tr -d '\r' < archivoDOS > archivoUNIX-LINUX
  
  
 
-- Convertir archivo en formato DOS con fines de linea CR LF a estilo unix con fines de linea LF
 
-- Convertir archivo en formato DOS con fines de linea CR LF a estilo unix con fines de linea LF
  dos2unix <nombredelarchivo>
+
dos2unix <nombredelarchivo>
  
 
-- Editor Hexadecimal para Red Hat
 
-- Editor Hexadecimal para Red Hat
  ghex
+
ghex
  
 
-- Ver archivos en modo Hexadecimal desde la linea de comandos
 
-- Ver archivos en modo Hexadecimal desde la linea de comandos
  hexdump -C <nombrearchivo>
+
hexdump -C <nombrearchivo>
  
 
-- Para conectarse remotamente a un servidor Windows que tenga activado remote desktop o escritorio remoto
 
-- Para conectarse remotamente a un servidor Windows que tenga activado remote desktop o escritorio remoto
 
Instalar rdesktop con
 
Instalar rdesktop con
  yum install rdesktop
+
yum install rdesktop
  
 
Para conectarse a un servidor windows de nombre windowssrv con resolución de pantall de 1024 x 760 pixeles
 
Para conectarse a un servidor windows de nombre windowssrv con resolución de pantall de 1024 x 760 pixeles
  rdesktop -g 1024x768 windowssvr
+
rdesktop -g 1024x768 windowssvr
  
 
-- Reparar arranque en equipo dual boot de Windows y Linux - recuperar grub despues de instalacion de windows
 
-- Reparar arranque en equipo dual boot de Windows y Linux - recuperar grub despues de instalacion de windows
  chroot /mnt/
+
chroot /mnt/
  grub-install /dev/sda
+
grub-install /dev/sda
  
 
-- Cambiar el nombre de los sistemas operativos de arranque si el boot loader es grub
 
-- Cambiar el nombre de los sistemas operativos de arranque si el boot loader es grub
    Editar el archivo menu.1st con el siguiente comando
+
Editar el archivo menu.1st con el siguiente comando
        vi /boot/grub/menu.lst
+
vi /boot/grub/menu.lst
    En este archivo cambiar de nombre por ejemplo donde dice "Other" que regularmente es Windows ponerle un nombre que desees como Windows Vista o Windows XP
+
En este archivo cambiar de nombre por ejemplo donde dice "Other" que regularmente es Windows ponerle un nombre que desees como Windows Vista o Windows XP
  
 
-- Password for default keyring
 
-- Password for default keyring
    Para eliminar la petición de password cuando envía el siguiente mensaje: "enter password for default keyring to unlock"
+
Para eliminar la petición de password cuando envía el siguiente mensaje: "enter password for default keyring to unlock"
    Eliminar el archivo .gnome2/keyrings/default.keyring
+
Eliminar el archivo
    http://www.linux-archive.org/fedora-user/116611-enter-password-default-keyring-unlock.html
+
.gnome2/keyrings/default.keyring
 +
http://www.linux-archive.org/fedora-user/116611-enter-password-default-keyring-unlock.html
  
 
-- En una lista de correos extraer solo el dominio
 
-- En una lista de correos extraer solo el dominio
  cat lista.txt | cut -d"@" -f2 | sed 's/^/@/'
+
cat lista.txt | cut -d"@" -f2 | sed 's/^/@/'
  
  
 
-- Agregar un usuario al archivo sudoers para que pueda ejecutar comandos administrativos, editar el archivo /etc/sudoers
 
-- Agregar un usuario al archivo sudoers para que pueda ejecutar comandos administrativos, editar el archivo /etc/sudoers
    vi /etc/sudoers
+
vi /etc/sudoers
    Si se desea que el usuario pueda ejecutar cualquier comando empleando sudo agregar la línea: (pero recuerda que siempre es más seguro propocionar solo los permisos mínimos necesarios)
+
Si se desea que el usuario pueda ejecutar cualquier comando empleando sudo agregar la línea: (pero recuerda que siempre es más seguro propocionar solo los permisos mínimos necesarios)
    lmoreno ALL=(ALL)      ALL
+
lmoreno ALL=(ALL)      ALL
  
 
lmoreno is not in the sudoers file.  This incident will be reported.
 
lmoreno is not in the sudoers file.  This incident will be reported.
Línea 1156: Línea 1204:
  
 
-- Archivo de configuracion IP estatica (RedHat y derivados como Fedora)
 
-- Archivo de configuracion IP estatica (RedHat y derivados como Fedora)
vi /etc/sysscripts/ifcfg-eth0
+
  vi /etc/sysscripts/ifcfg-eth0
  
DEVICE=eth0
+
DEVICE=eth0
BOOTPROTO=static
+
BOOTPROTO=static
BROADCAST=192.168.0.255
+
BROADCAST=192.168.0.255
HWADDR=00:0C:29:C8:AA:7C
+
HWADDR=00:0C:29:C8:AA:7C
IPADDR=192.168.16.3
+
IPADDR=192.168.16.3
NETMASK=255.255.255.0
+
NETMASK=255.255.255.0
  
GATEWAY=192.168.16.1
+
GATEWAY=192.168.16.1
NETWORK=192.168.16.0
+
NETWORK=192.168.16.0
ONBOOT=yes
+
ONBOOT=yes
TYPE=Ethernet
+
TYPE=Ethernet
  
 
-- Configuracion para IP dinamica DHCP
 
-- Configuracion para IP dinamica DHCP
 
Configuracion DHCP
 
Configuracion DHCP
  
DEVICE=eth0
+
DEVICE=eth0
BOOTPROTO=dhcp
+
BOOTPROTO=dhcp
ONBOOT=yes
+
ONBOOT=yes
  
 
-- Cambiar IP con el comando ifconfig
 
-- Cambiar IP con el comando ifconfig
    ifconfig eth0 192.168.1.5 netmask 255.255.255.0
+
ifconfig eth0 192.168.1.5 netmask 255.255.255.0
  
 
-- Para ver la direccion IP actual de una interfaz
 
-- Para ver la direccion IP actual de una interfaz
  ifconfig <interfaz>
+
ifconfig <interfaz>
        Por ejemplo, el siguiente comando mostrara la configuracion actual de la primer interfaz de red:
+
Por ejemplo, el siguiente comando mostrara la configuracion actual de la primer interfaz de red:
  ifconfig eth0
+
ifconfig eth0
  
 
-- Cambiar MAC address. MAC Spoofing esta es una tecnica para cambiar la MAC address de una tarjeta, muchas veces util para realizar pruebas de seguridad o hacking
 
-- Cambiar MAC address. MAC Spoofing esta es una tecnica para cambiar la MAC address de una tarjeta, muchas veces util para realizar pruebas de seguridad o hacking
  Primero dar de baja la interfaz, ejemplo:
+
Primero dar de baja la interfaz, ejemplo:
    ifdown eth0
+
ifdown eth0
      o bien
+
o bien
    ifconfig eth0 down
+
ifconfig eth0 down
  
  Posteriormente poner que MAC address deseamos con el comando:
+
Posteriormente poner que MAC address deseamos con el comando:
    ifconfig eth0 hw ether 00:01:02:03:04:05
+
ifconfig eth0 hw ether 00:01:02:03:04:05
  
  Finalmente dar de alta la tarjeta nuevamente:   
+
Finalmente dar de alta la tarjeta nuevamente:   
    ifup eth0
+
ifup eth0
  Ahora la tarjeta ya sera reconocida con la MAC address 00:01:02:03:04:05
+
Ahora la tarjeta ya sera reconocida con la MAC address 00:01:02:03:04:05
  
 
-- <Fin> direccionamiento IP --
 
-- <Fin> direccionamiento IP --
Línea 1202: Línea 1250:
 
-- DNS --
 
-- DNS --
 
-- Agrear servidores DNS del equipo
 
-- Agrear servidores DNS del equipo
echo "nameserver 192.168.16.254" >> /etc/resolv.conf
+
echo "nameserver 192.168.16.254" >> /etc/resolv.conf
  
vi /etc/resolv.conf
+
vi /etc/resolv.conf
nameserver direccionip
+
nameserver direccionip
  
 
-- Limpiar los DNS o flush DNS
 
-- Limpiar los DNS o flush DNS
    /etc/rc.d/init.d/nscd restart
+
/etc/rc.d/init.d/nscd restart
  
 
-- <FIN> DNS --
 
-- <FIN> DNS --
Línea 1215: Línea 1263:
 
-- Ruteo --
 
-- Ruteo --
 
--Agregar una ruta por default
 
--Agregar una ruta por default
add default route
+
add default route
route add default gw 192.168.1.1
+
route add default gw 192.168.1.1
 
http://linux.about.com/od/commands/l/blcmdl8_route.htm
 
http://linux.about.com/od/commands/l/blcmdl8_route.htm
  
Línea 1222: Línea 1270:
 
--para ver que default gateway asigno el dhcp
 
--para ver que default gateway asigno el dhcp
 
  route -n
 
  route -n
  y buscar la entrada con las letras UG
+
y buscar la entrada con las letras UG
  
 
--O bien usar
 
--O bien usar
 
  netstat -r
 
  netstat -r
  y buscar la entrada que diga default
+
y buscar la entrada que diga default
  
 
-- ver las rutas estaticas del equipo
 
-- ver las rutas estaticas del equipo
Línea 1232: Línea 1280:
  
 
-- agregar una ruta de toda la red y enviarla al dispositivo eth0 (util cuando estás haciendo hacking como MITM o arp spoofing)
 
-- agregar una ruta de toda la red y enviarla al dispositivo eth0 (util cuando estás haciendo hacking como MITM o arp spoofing)
route add -net 200.66.81.64 netmask 255.255.255.192 dev eth0
+
route add -net 200.66.81.64 netmask 255.255.255.192 dev eth0
  
 
-- <FIN> Ruteo --
 
-- <FIN> Ruteo --
  
 
--Cuando se cambia una IP o se desea renovar la direccion DHCP se debe dar de baja y alta la tarjeta
 
--Cuando se cambia una IP o se desea renovar la direccion DHCP se debe dar de baja y alta la tarjeta
Da de baja la tarjeta eth0
+
Da de baja la tarjeta eth0
  ifdown eth0
+
ifdown eth0
Da de alta la tarjeta eth0
+
Da de alta la tarjeta eth0
  ifup eth0
+
ifup eth0
  
 
-- ARP --
 
-- ARP --
 
-- agregar entrada arp
 
-- agregar entrada arp
arp -s 200.66.81.110 00:04:23:DC:D9:AC
+
arp -s 200.66.81.110 00:04:23:DC:D9:AC
  
 
-- verificar entradas arp
 
-- verificar entradas arp
arp -n
+
arp -n
 
http://linux-ip.net/html/ether-arp.html
 
http://linux-ip.net/html/ether-arp.html
  
Línea 1253: Línea 1301:
  
 
-- Cambiar hostname
 
-- Cambiar hostname
  hostname nuevonombre
+
hostname nuevonombre
  
 
Editar el archivo /etc/sysconfig/network
 
Editar el archivo /etc/sysconfig/network
  HOSTNAME=<nuevonombredehost>
+
HOSTNAME=<nuevonombredehost>
 
el cambio tomara efecto hasta el siguiente reboot
 
el cambio tomara efecto hasta el siguiente reboot
  
 
si pones en /etc/hosts
 
si pones en /etc/hosts
  127.0.0.1 <nombrequequieras>
+
127.0.0.1 <nombrequequieras>
 
  el prompt cambia y php reconoce el hostname tambien
 
  el prompt cambia y php reconoce el hostname tambien
 
-- <FIN> Cambiar hostname --
 
-- <FIN> Cambiar hostname --
  
 
-- Para ubuntu  
 
-- Para ubuntu  
  hostname nuevonombre
+
hostname nuevonombre
  
/etc/hostname
+
/etc/hostname
  
 
-- Realizar un trazado empleando TCP y un puerto en particular por ejemplo puerto 80 (aunque puede ser otro puerto ejemplo puerto 25)
 
-- Realizar un trazado empleando TCP y un puerto en particular por ejemplo puerto 80 (aunque puede ser otro puerto ejemplo puerto 25)
    traceroute -T -p 80 72.14.213.104
+
traceroute -T -p 80 72.14.213.104
        -T = TCP
+
-T = TCP<br>
        -p = port
+
-p = port<br>
        80 = puerto (80 HTTP)
+
-80 = puerto (80 HTTP)<br>
  
 
Mas info en: http://www.linuxcertif.com/man/8/traceroute/40381/
 
Mas info en: http://www.linuxcertif.com/man/8/traceroute/40381/
  
 
-- Direccionamiento en Ubuntu
 
-- Direccionamiento en Ubuntu
  editar el archivo /etc/network/interfaces
+
editar el archivo
 +
/etc/network/interfaces
  
  auto eth0
+
auto eth0
  iface eth0 inet static
+
iface eth0 inet static
  address 192.168.1.100
+
address 192.168.1.100
  netmask 255.255.255.0
+
netmask 255.255.255.0
  gateway 192.168.1.254
+
gateway 192.168.1.254
  dns-nameservers 192.168.1.254
+
dns-nameservers 192.168.1.254
  
 
-- Configurar IP estática en Ubuntu 18
 
-- Configurar IP estática en Ubuntu 18
 
   sudo vim /etc/netplan/50-cloud-init.yaml
 
   sudo vim /etc/netplan/50-cloud-init.yaml
network:
+
network:
    ethernets:
+
    ethernets:
        enp0s3:
+
        enp0s3:
            addresses: [192.168.1.2/24]
+
            addresses: [192.168.1.2/24]
            gateway4: 192.168.1.1
+
            gateway4: 192.168.1.1
            nameservers:
+
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]
+
              addresses: [8.8.8.8,8.8.4.4]
            dhcp4: no
+
            dhcp4: no
    version: 2
+
    version: 2
  
 
Y al final ejecutar  
 
Y al final ejecutar  
  sudo netplan apply
+
sudo netplan apply
  
 
-- Configurar IP dinámica
 
-- Configurar IP dinámica
  sudo vim /etc/netplan/50-cloud-init.yaml
+
sudo vim /etc/netplan/50-cloud-init.yaml
 
   network:
 
   network:
 
       ethernets:
 
       ethernets:
Línea 1312: Línea 1361:
  
 
Y al final ejecutar  
 
Y al final ejecutar  
  sudo netplan apply
+
sudo netplan apply
  
 
-- Reiniciar el servicio de red
 
-- Reiniciar el servicio de red
  sudo ip addr flush eth0 && sudo systemctl restart networking.service
+
sudo ip addr flush eth0 && sudo systemctl restart networking.service
  
 
-- Reinicar servicio de red sin hacer flush
 
-- Reinicar servicio de red sin hacer flush
  systemctl restart network
+
systemctl restart network
  
  
Línea 1331: Línea 1380:
  
 
-- DNS Ubuntu
 
-- DNS Ubuntu
  Editar archivo /etc/resolv.conf
+
Editar archivo
 +
/etc/resolv.conf
  
  
Línea 1338: Línea 1388:
 
//////////////// Instalacion desinstalacion de programas /////////////////
 
//////////////// Instalacion desinstalacion de programas /////////////////
 
-- Instalar programas mediante rmp
 
-- Instalar programas mediante rmp
  rpm -ivh <nombre del archivo .rpm>
+
rpm -ivh <nombre del archivo .rpm>
  i = install, v = verbose, h= human
+
i = install<br>
 +
v = verbose<br>
 +
h= human<br>
 
Ejemplo:
 
Ejemplo:
 
   rpm -ivh nessus.rpm
 
   rpm -ivh nessus.rpm
Línea 1347: Línea 1399:
  
 
-- Ver que rpms estan instalados por rpm
 
-- Ver que rpms estan instalados por rpm
rpm -qa
+
rpm -qa
  
 
Ejempo: Para ver si esta instalada la aplicacion mysql
 
Ejempo: Para ver si esta instalada la aplicacion mysql
rmp -qa |grep mysql
+
rmp -qa |grep mysql
  
 
--Remover desinstalar packages en caso de que tengan dependencias desinstalar paquetes
 
--Remover desinstalar packages en caso de que tengan dependencias desinstalar paquetes
    rpm -e --nodeps php-pear-1.4.9-1.2
+
rpm -e --nodeps php-pear-1.4.9-1.2
    rpm -e php-5.1.6-1.2
+
rpm -e php-5.1.6-1.2
  
 
------------- instalacion de programas con yum, uso de YUM - Instalar / desinstalar programas con YUM -------------------
 
------------- instalacion de programas con yum, uso de YUM - Instalar / desinstalar programas con YUM -------------------
Línea 1364: Línea 1416:
  
 
-- Para instalar un paquete
 
-- Para instalar un paquete
  yum install <nombredelpaquete>
+
yum install <nombredelpaquete>
  
 
-- Para buscar un paquete
 
-- Para buscar un paquete
  yum search <nombredelpaquete o comando> ejemplo yum search yacc
+
yum search <nombredelpaquete o comando> ejemplo yum search yacc
  
 
-- Para obtener informacion de un paquete
 
-- Para obtener informacion de un paquete
  yum info net-snmp-utils
+
yum info net-snmp-utils
  
 
--Desinstalar paquetes con yum
 
--Desinstalar paquetes con yum
  yum remove <nombredelpaquete>
+
yum remove <nombredelpaquete>
 +
 
 +
Cuando no se puede actualizar un paquete por errores en las dependencias se puede buscar los archivos que causan el problema, luego el paquete que depende de ese archivo y luego eliminar dicho paquete.
 +
Primero localizar el archivo ejemplo
 +
locate libdts.so.0
 +
Regresara el path donde se encuentra el archivo, ejemplo:
 +
/etc/libdts.so.0
 +
Despues usar
 +
yum provides /etc/libdts.so.0
 +
esto es para encontrar que paquete esta haciendo referencia<br>
 +
el resultado sera algo como
 +
libdca-0.0.5-1.fc7
 +
Finalmente remover dicho paquete
 +
yum remove libdca-0.0.5-1.fc7
  
<inicio>Cuando no se puede actualizar un paquete por errores en las dependencias se puede buscar los archivos que causan el problema, luego el paquete que depende de ese archivo y luego eliminar dicho paquete.
 
  Primero localizar el archivo ejemplo
 
          locate libdts.so.0
 
      Regresara el path donde se encuentra el archivo, ejemplo:
 
          /etc/libdts.so.0
 
  Despues usar
 
          yum provides /etc/libdts.so.0
 
          esto es para encontrar que paquete esta haciendo referencia
 
          el resultado sera algo como
 
              libdca-0.0.5-1.fc7
 
  Finalmente remover dicho paquete
 
      yum remove libdca-0.0.5-1.fc7
 
<end>
 
  
 
-- Instalar paquete de un repositorio especifico
 
-- Instalar paquete de un repositorio especifico
 
Deshabilita el repositorio que no quieres que tome ejemplo:
 
Deshabilita el repositorio que no quieres que tome ejemplo:
  yum --disablerepo=extras install paqueteA
+
yum --disablerepo=extras install paqueteA
  
 
Para evitar que yum seleccione alguna vez el paqueteA de extras puedes agregar la siguiente linea a el archivo extras.repo en la carpeta /etc/yum.repos.d/:
 
Para evitar que yum seleccione alguna vez el paqueteA de extras puedes agregar la siguiente linea a el archivo extras.repo en la carpeta /etc/yum.repos.d/:
Línea 1406: Línea 1458:
 
-- Instalar otros repositorios como Wieers DAG rpmforge
 
-- Instalar otros repositorios como Wieers DAG rpmforge
 
   rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
 
   rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
  http://dag.wieers.com/rpm/FAQ.php#B
+
http://dag.wieers.com/rpm/FAQ.php#B
  
 
Instalar EPEL
 
Instalar EPEL
Línea 1437: Línea 1489:
 
     Trying other mirror.
 
     Trying other mirror.
 
     no more mirrors to try
 
     no more mirrors to try
        Descarga el file directamente del link desde el navegador (firefox) y ponlo en la carpeta:
+
Descarga el file directamente del link desde el navegador (firefox) y ponlo en la carpeta:
            /var/cache/yum/updates/packages
+
/var/cache/yum/updates/packages
        y ejecuta yum install nuevamente
+
y ejecuta:
 +
yum install nuevamente
  
 
-- Actualizar el sistema
 
-- Actualizar el sistema
Línea 1491: Línea 1544:
 
--Instalar firefox
 
--Instalar firefox
 
descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz
 
descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz
tar -xzvf nombrearchivo.tar.gz
+
tar -xzvf nombrearchivo.tar.gz
  x = extract, z = gzip, v = verbose, f = file
+
x = extract<br>
 +
z = gzip<br>
 +
v = verbose<br>
 +
f = file<br>
  
 
--Mozilla directory
 
--Mozilla directory
Línea 1504: Línea 1560:
 
---------------- Instalar Flash Player ----------------
 
---------------- Instalar Flash Player ----------------
  
Los siguientes pasos describen como instalar Flash Player para Fedora pero debe funcionar con pocos cambios para otras versiones
+
Los siguientes pasos describen como instalar Flash Player para Fedora pero debe funcionar con pocos cambios para otras versiones<br>
El primer paso es ir al sitio de Adobe: http://get.adobe.com/flashplayer y seleccionar la opcion "YUM for Linux" y despues dar click en Download,
+
El primer paso es ir al sitio de Adobe: http://get.adobe.com/flashplayer y seleccionar la opcion "YUM for Linux" y despues dar click en Download,<br>
 
Ahora instala el RPM que acabas de descargar con el comando:
 
Ahora instala el RPM que acabas de descargar con el comando:
 
  rpm -ivh adobe-release-i386-1.0-1.noarch.rpm (el nombre del archivo puede variar)
 
  rpm -ivh adobe-release-i386-1.0-1.noarch.rpm (el nombre del archivo puede variar)
Línea 1535: Línea 1591:
  
 
--Instalar Java
 
--Instalar Java
descargar self extracting rpm
+
descargar self extracting rpm<br>
 
mover archivo a /usr/java por ejemplo y hacerlo ejecutable,
 
mover archivo a /usr/java por ejemplo y hacerlo ejecutable,
ejecutar archivo para que se descomprima e instale.
+
ejecutar archivo para que se descomprima e instale.<br>
  
 
--Java directory
 
--Java directory
/usr/java/jre1.5.0_06
+
/usr/java/jre1.5.0_06
  
 
---------------- Instalar Firefox ----------------
 
---------------- Instalar Firefox ----------------
Línea 1546: Línea 1602:
 
--Instalar firefox
 
--Instalar firefox
 
descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz
 
descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz
tar -xzvf nombrearchivo.tar.gz
+
tar -xzvf nombrearchivo.tar.gz
x = extract, z = gzip, v = verbose, f = file
+
x = extract<br>
 +
z = gzip<br>
 +
v = verbose<br>
 +
f = file<br>
  
 
--Mozilla directory
 
--Mozilla directory
  
/usr/lib/firefox-1.5.0.1/plugins
+
/usr/lib/firefox-1.5.0.1/plugins
  
 
--Crear linkname para llama en firefox
 
--Crear linkname para llama en firefox
ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .
+
ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .
 
---------------- <FIN> Instalar Firefox ----------------
 
---------------- <FIN> Instalar Firefox ----------------
  
Línea 1560: Línea 1619:
  
 
--instalar ndiswrapper fc5hi
 
--instalar ndiswrapper fc5hi
yum -y install kmod-ndiswrapper
+
yum -y install kmod-ndiswrapper
  
 
--Instalar client de FTP Cliente
 
--Instalar client de FTP Cliente
  yum -y install gftp
+
yum -y install gftp
  
 
   Una vez instalado para ejecutarlo solo escribe "gftp" en la linea de comandos.
 
   Una vez instalado para ejecutarlo solo escribe "gftp" en la linea de comandos.
Línea 1603: Línea 1662:
 
/////////////////////  vim o vi ////////////////////////////////
 
/////////////////////  vim o vi ////////////////////////////////
 
-- Poner numeros de linea en vi
 
-- Poner numeros de linea en vi
:set number
+
:set number
  
:set nonumber #quita numeros de linea
+
-- Quitar numeros de linea en vi
 +
:set nonumber #quita numeros de linea
  
  
Línea 1640: Línea 1700:
 
   vim /etc/aliases
 
   vim /etc/aliases
 
remover la el comentario a la línea:
 
remover la el comentario a la línea:
#root:          marc
+
#root:          marc
 
cambiar la linea por el usuario al que se quiere enviar el correo ejemplo al usuario lmoreno
 
cambiar la linea por el usuario al que se quiere enviar el correo ejemplo al usuario lmoreno
  root:     lmoreno
+
root:     lmoreno
 
guardar el archivo con :wq
 
guardar el archivo con :wq
 
ejecutar el comando:
 
ejecutar el comando:
  newaliases
+
newaliases
 
y probar enviando un correo a root para que lo reciba el nuevo usuario
 
y probar enviando un correo a root para que lo reciba el nuevo usuario
  
 
-- cambiar de usuario
 
-- cambiar de usuario
su -s /bin/bash - apache
+
su -s /bin/bash - apache
  
  
Línea 1659: Línea 1719:
  
 
-- Listar discos en el sistema
 
-- Listar discos en el sistema
fdisk -l
+
fdisk -l
  
 
-- Vim encoding
 
-- Vim encoding
Línea 1666: Línea 1726:
 
-- copiar de windows a Linux con WinSCP
 
-- copiar de windows a Linux con WinSCP
 
http://ubuntuforums.org/archive/index.php/t-857784.html
 
http://ubuntuforums.org/archive/index.php/t-857784.html
 
-- instalar rpmforge repository
 
Install rpmforge repository CENTOS Howto
 
 
Download the latest rpmforge-release rpm from
 
http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/
 
 
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
 
 
Install rpmforge-release rpm:
 
# rpm -Uvh rpmforge-release*rpm
 
rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
 
 
Install convmv rpm package:
 
# yum install convmv
 
 
 
http://pkgs.org/centos-6-rhel-6/repoforge-i386/convmv-1.14-1.el6.rf.noarch.rpm.html
 
http://kbfaq.blogspot.mx/2011/08/installing-rpmforge-repository.html
 
  
 
-- all about Encoding
 
-- all about Encoding
Línea 1693: Línea 1734:
  
 
-- convertir archivos de text Windows notepad ANSI (ASCII) a UTF-8
 
-- convertir archivos de text Windows notepad ANSI (ASCII) a UTF-8
iconv -f 8859_1 -t utf-8 2lista.lst > lista.lst
+
iconv -f 8859_1 -t utf-8 2lista.lst > lista.lst
  
 
-- ver que tipo de archivo son todos los archivos con extensión mp3
 
-- ver que tipo de archivo son todos los archivos con extensión mp3
Línea 1699: Línea 1740:
  
 
-- ver el espacio usado en el disco
 
-- ver el espacio usado en el disco
df -h
+
df -h
  
 
-- ver el espacio usado por cada folder
 
-- ver el espacio usado por cada folder
du -s /media/Nabucodonosor/data
+
du -s /media/Nabucodonosor/data
  
 
-- ver el espacio usado por cada folder pero de forma resumida y total
 
-- ver el espacio usado por cada folder pero de forma resumida y total
du --max-depth=1 -h
+
du --max-depth=1 -h
 
-- ver archivos abiertos
 
-- ver archivos abiertos
lsof -i -n
+
lsof -i -n
lsof -p 8295
+
lsof -p 8295
  
 
-i muestra el host  
 
-i muestra el host  
Línea 1714: Línea 1755:
  
 
-- Montar un volumen en EC2
 
-- Montar un volumen en EC2
mount
 
 
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html
 
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html
  
 
-- Permisos al folder /var/www/html apache para un nuevo usuario
 
-- Permisos al folder /var/www/html apache para un nuevo usuario
chown -R apache:apache /var/www/html
+
chown -R apache:apache /var/www/html
usermod -a -G apache myuser
+
usermod -a -G apache myuser
chmod 777 /var/www/html -R
+
chmod 777 /var/www/html -R
chmod -R g+w /var/www/html
+
chmod -R g+w /var/www/html
  
 
-----------------------------------------------
 
-----------------------------------------------
Línea 1732: Línea 1772:
  
 
-- Respaldo de folder completo comprimido
 
-- Respaldo de folder completo comprimido
  tar -czvf myarchive.tgz mydirectory/
+
tar -czvf myarchive.tgz mydirectory/
  
 
-- rsync copiar archivos incrementalmente
 
-- rsync copiar archivos incrementalmente
rsync -avzhP /home/lmoreno/datos lmoreno@192.168.1.50:/mnt/data/datosbackup
+
rsync -avzhP /home/lmoreno/datos lmoreno@192.168.1.50:/mnt/data/datosbackup
 
 
-v : verbose
 
-r : copies data recursively (but don’t preserve timestamps and permission while transferring data
 
-a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user & group ownerships and timestamps
 
-z : compress file data
 
-h : human-readable, output numbers in a human-readable format
 
-P : shows progress
 
  
 +
-v : verbose<br>
 +
-r : copies data recursively (but don’t preserve timestamps and permission while transferring data<br>
 +
-a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user & group ownerships and timestamps<br>
 +
-z : compress file dataroot a otro usuarioroot a otro usuario<br>
 +
-h : human-readable, output numbers in a human-readable format<br>
 +
-P : shows progress<br>
 +
<br>
 
http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/
 
http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/
  
Línea 1752: Línea 1792:
  
 
-- Primero crear la carpeta local donde se va a montar la carpeta compartida  
 
-- Primero crear la carpeta local donde se va a montar la carpeta compartida  
mkdir -p /mnt/windows
+
mkdir -p /mnt/windows
  
 
-p = crea la ruta si no existe por ejemplo si no existiera /mnt también crea esta carpeta
 
-p = crea la ruta si no existe por ejemplo si no existiera /mnt también crea esta carpeta
  
 
-- Montar la carpeta compartida
 
-- Montar la carpeta compartida
mount -t cifs //servidor/carpetawindows -o username=luis.moreno,password=Misuperpassword /mnt/windows
+
mount -t cifs //servidor/carpetawindows -o username=luis.moreno,password=Misuperpassword /mnt/windows
  
  
 
Para versiones viejas de Red Hat Enterprise Linux menores o iguales a 4 o Debian menores o iguales a 3 usa este comando
 
Para versiones viejas de Red Hat Enterprise Linux menores o iguales a 4 o Debian menores o iguales a 3 usa este comando
mount -t smbfs -o username=luis.moreno,password=Misuperpassword //servidor/carpetawindows /mnt/windows
+
mount -t smbfs -o username=luis.moreno,password=Misuperpassword //servidor/carpetawindows /mnt/windows
 
 
  
-t cifs o t smbfs = especifica el tipo de unidad a montar en este caso Common Internet File System o SMB que pertenece a Windows
 
//servidor/carpetawindows es el servidor y el nombre de la carpeta compartida Windows
 
-o son opciones que se le pasan al comando mount en este paso fue nombre de usuario (luis.moreno) y password (Misuperpassword)
 
/mnt/windows es donde se va a montar localmente la carpeta compartida de windows
 
  
si el password tiene coma o apostrofe dejarlo sin password lo solicitará al ejecutar el comando
+
-t cifs o t smbfs = especifica el tipo de unidad a montar en este caso Common Internet File System o SMB que pertenece a Windows<br>
 +
//servidor/carpetawindows es el servidor y el nombre de la carpeta compartida Windows<br>
 +
-o son opciones que se le pasan al comando mount en este paso fue nombre de usuario (luis.moreno) y password (Misuperpassword)<br>
 +
/mnt/windows es donde se va a montar localmente la carpeta compartida de windows<br>
 +
Si el password tiene coma o apostrofe dejarlo sin password lo solicitará al ejecutar el comando
  
  
 
-- ver el contenido de la carpeta con
 
-- ver el contenido de la carpeta con
ls -l /mnt/windows
+
ls -l /mnt/windows
  
 
http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html
 
http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html
  
 
-- Crear archivo con con 0s
 
-- Crear archivo con con 0s
dd if=/dev/zero of=/test bs=1048576 count=1024
+
dd if=/dev/zero of=/test bs=1048576 count=1024
  
  
Línea 1784: Línea 1823:
  
 
-- ver los jobs programados
 
-- ver los jobs programados
    crontab -l
+
crontab -l
  
 
-- edit tar archivo crontab
 
-- edit tar archivo crontab
    crontab -e
+
crontab -e
  
 
-- también puedes ver el archivo directamente en la siguiente ruta, pero no es recomendable que lo edites directamente ya que el archivo es leído cuando el sistema inicia y se carga en memoria, el comando crontab -e es la mejor opción para editarlo pues interactúa con cron de manera correcta.
 
-- también puedes ver el archivo directamente en la siguiente ruta, pero no es recomendable que lo edites directamente ya que el archivo es leído cuando el sistema inicia y se carga en memoria, el comando crontab -e es la mejor opción para editarlo pues interactúa con cron de manera correcta.
Línea 1796: Línea 1835:
 
Las líneas de crontab se ejecutan como se ve en la gráfica
 
Las líneas de crontab se ejecutan como se ve en la gráfica
  
* *     *  *    *        Comando a ejecutar
+
* *     *  *    *        Comando a ejecutar
- - -  -    -
+
- -     -  -    -
| | |  | |
+
| |     |  | |
| | |  | +----- día de la semana (0 - 6) (Domingo=0)
+
| |     |  | +----- día de la semana (0 - 6) (Domingo=0)
| | |  +------- mes (1 - 12)
+
| |     |  +------- mes (1 - 12)
| | +--------- día del mes (1 - 31)
+
| |     +--------- día del mes (1 - 31)
| +----------- hora (0 - 23)
+
| +----------- hora (0 - 23)
+------------- min (0 - 59)
+
+------------- min (0 - 59)
  
 
/////////////////////  crontab ////////////////////////////////
 
/////////////////////  crontab ////////////////////////////////
  
 
-- Dividir un archivo en varias partes, ya sea por tamaño, número de líneas, etc. Ejemplo: dividir por tamaño
 
-- Dividir un archivo en varias partes, ya sea por tamaño, número de líneas, etc. Ejemplo: dividir por tamaño
  split -b 200M nombredearchivo
+
split -b 200M nombredearchivo
  
 
-- Ver el porcentaje de uso del Procesador  
 
-- Ver el porcentaje de uso del Procesador  
  grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
+
grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
  
 
En caso de que haya más de un procesador usar las variasntes
 
En caso de que haya más de un procesador usar las variasntes
  grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
+
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
  grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
+
grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
  grep 'cpu2 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
+
grep 'cpu2 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
  
 
-- enviar proceso al background
 
-- enviar proceso al background
  ctrl+z  
+
ctrl+z  
 
y luego teclear
 
y luego teclear
  bg
+
bg
 
para traerlo de nuevo
 
para traerlo de nuevo
  fg
+
fg
 
o si es más de un proceso  
 
o si es más de un proceso  
  
 
-- para ver los intentos de login en el archivo btmp usar el comando lastb, ejemplo:
 
-- para ver los intentos de login en el archivo btmp usar el comando lastb, ejemplo:
  last -f /var/log/btmp
+
last -f /var/log/btmp
 
El archivo btmp debe tener permisos limitados y solo para root ejemplo:
 
El archivo btmp debe tener permisos limitados y solo para root ejemplo:
chown root:utmp /var/log/btmp && chmod 600 /var/log/btmp
+
chown root:utmp /var/log/btmp && chmod 600 /var/log/btmp
  
 
-- Corregir error al aplicar apt-get update dpkg: error processing /var/cache/apt/archives/python-apport_2.0.1-0ubuntu9_all.deb
 
-- Corregir error al aplicar apt-get update dpkg: error processing /var/cache/apt/archives/python-apport_2.0.1-0ubuntu9_all.deb
  sudo dpkg -i --force-overwrite <filename>
+
sudo dpkg -i --force-overwrite <filename>
 
En este caso
 
En este caso
  sudo dpkg -i --force-overwrite /var/cache/apt/archives/python-problem-report_2.0.1-0ubuntu9_all.deb
+
sudo dpkg -i --force-overwrite /var/cache/apt/archives/python-problem-report_2.0.1-0ubuntu9_all.deb
  
 
-- Ordenar IPs
 
-- Ordenar IPs
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.txt
+
sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.txt
  
-t . separador de campo es el punto
+
-t . separador de campo es el punto<br>
-k 1,1n primer campo para ordenar es el 1, ordenar numérico
+
-k 1,1n primer campo para ordenar es el 1, ordenar numérico<br>
  
Cada campo es ordenado 1 a 1 en orden
+
Cada campo es ordenado 1 a 1 en orden<br>
  
  
Ordenado rápido
+
-- Ordenado rápido
sort -V ips.txt
+
sort -V ips.txt
 
https://www.madboa.com/geek/sort-addr/  
 
https://www.madboa.com/geek/sort-addr/  
  
 
-- obtener IP pública
 
-- obtener IP pública
  dig +short myip.opendns.com @resolver1.opendns.com
+
dig +short myip.opendns.com @resolver1.opendns.com
alias myip='dig +short myip.opendns.com @resolver1.opendns.com'
+
alias myip='dig +short myip.opendns.com @resolver1.opendns.com'
 
 
// FIN
 
  
 
-- Que paquetes est[an instalados
 
-- Que paquetes est[an instalados
  rpm -qa
+
rpm -qa
  yum list installed
+
yum list installed
    yum update && yum install yum-utils
+
yum update && yum install yum-utils
  repoquery -a --installed
+
repoquery -a --installed
  
  
Línea 1866: Línea 1903:
  
 
-- Establecer una IP
 
-- Establecer una IP
  ip addr add 10.23.34.46/29 dev eth0
+
ip addr add 10.23.34.46/29 dev eth0
  
 
-- Borrar una IP
 
-- Borrar una IP
ip addr del 10.23.34.46/29 dev eth0
+
ip addr del 10.23.34.46/29 dev eth0
  
 
-- Establecer ruta por default
 
-- Establecer ruta por default
ip route add default via 47.23.34.41 dev eth0
+
ip route add default via 47.23.34.41 dev eth0
  
 
-- reiniciar servicios de red (networking) ubuntu
 
-- reiniciar servicios de red (networking) ubuntu
  sudo service network-manager restart
+
sudo service network-manager restart
  
 
-- modificar IP desde la interfaz gráfica gui
 
-- modificar IP desde la interfaz gráfica gui
  nm-connection-editor
+
nm-connection-editor
  
 
-- ver cuanto tiene de memoria y cuantos slots ocupados y libres así como la capacidad total
 
-- ver cuanto tiene de memoria y cuantos slots ocupados y libres así como la capacidad total
  dmidecode -t memory
+
dmidecode -t memory
  lshw -class memory
+
lshw -class memory
  dmidecode -t 16
+
dmidecode -t 16
 +
 
 +
 
 +
-- iTerm2, dividir la consola en dos de forma horizontal
 +
CMD + shift + D
 +
 
 +
-- iTerm2, dividir la consola en dos de forma vertical
 +
  CMD + D

Revisión actual del 12:55 12 abr 2023

Comandos Frecuentes Linux

Recuerda buscar con CTRL+F con acentos y sin acentos, a veces lo escribía con teclado en inglés y no era fácil poner los acentos.
Por ejemplo si quieres ver como se pone una ip fija en CentOS busca "direccion" así sin acento y vas saltando entre las respuestas hasta que encuentres lo que buscas.


Principalmente Debian y RedHat


Es una compilación de comandos Linux que fui haciendo mientras aprendía y que aún uso de referencia, espero que también les sirva a ustedes tanto como me ha servido a mi.

Comandos Linux

-- Pedir ayuda de cualquier comando

 man <comando>

Ejemplo:

 man grep

-- Como particionar el disco para usar Linux partition -- Verifica, crea, elimina particiones

fdisk /dev/hda

-- Crea una particion en el disco duro primario mkfs -t ext2 -c /dev/hda1

 -t especifica el tipo de particion este caso es ext2
 -c checa por sectores defectuosos antes de formatear

-- Tamaño recomendado (varia según para lo que vaya a emplear Linux) /boot 102 a 150 Mb /swap el doble de memoria fisica / (root) el resto del disco Ext3 es mejor = ext2 with journaling

-- Varios
clear - limpia la pantalla
reset - Resetea terminal a los valores por default
finger - muestra informacion de usuarios del sistema
who - muestra usuarios conectados al sistema actualmente
w - muestra quien esta conectado actualmente y sus tareas, sessions sesiones
whoami - muestra el nombre del usuario actual
id - muestra numeros asociados con tu cuenta de usuario y nombres de grupo
date - muestra fecha actual y hora
cal - muestra el calendario del mes actual
cat - ver contenido de archivos
exit - sale del shell actual
echo - muestra informacion en la pantalla
echo $SHELL muestra el shell actual
$ Variable Shell
~ Variable especial home directory (por ejemplo "cd ~" te lleva a /home/usuario
& ejecucion de comando en background ejemplo: "nmap -O 192.168.1.1-24 &" ejecuta el comando en el background y puedes siguir teclando comandos
< << > >> Redireccion entrada/salida
| pipe para encadenar comandos, ejemplo: "cat archivo.txt | grep nombre" dos comandos combinados
?[]* shell wildcards comodines, ejemplo: "ls *.txt"
' " \ Metacaracters comilla
` substitucion de comando
() {} agrupacion de comandos

--Cancelar la ejecución de un comando

CTRL+C

Es decir mantener presionada la tecla control (ctrl), luego presionar la tecla C, despues soltar ambas

--Listar archivos

ls -l

-- mostrar el número de archivos en un folder o directorio

echo *.* | wc

-- mostrar el número de directorios en un folder o directorio

echo */ | wc

-- ver último archivo modificado | Archivo más reciente

ls -Art | tail -n 1

--ver las últimas 10 líneas de archivos de texto

tail <nombrearchivo>

si deseas ver mas de 10 líneas ejecuta ejemplo ver ultimas 30 líneas

 tail -30 <nombrearchivo>

para ver los ultimos cambios que va teniendo el archivo, útil para ver logs, correo, etc

tail -f <nombredelarchivo>

--ver primeras 10 lineas de archivos de texto

head <nombrearchivo>

si deseas ver mas de 10 lineas ejecuta ejemplo ver las primeras 30 lineas

head -30 <nombrearchivo>

--Listar solo directorios

 ls -l|grep ^d
 ls -p |grep /
 ls -l | egrep '^d'

-- eliminar archivos con la extensión *.xxx en todo el disco

find / -type f -name "*.xxx" -exec rm {} \;


-- Eliminar folders / directorios tener PRECAUCION con la opcion -rf ya que puedes eliminar algo que no desees mejor asegurate antes de ejecutarlo -- Borrar folders / directorios

 rm -rf foldername
  

-- borrar folder vacios / directorios vacios

 rmdir <nombredelfolder>

-- eliminar todos los archivos excepto un archivo o directorio, por ejemplo: eliminar todos los archivos del directorio actual excepto el directorio que se llama wiki

shopt -s extglob
rm -rf -v !("wiki")

--copia todo el contenido del CD rom al folder install

 cp -av /mnt/cdrom /install

--Buscar texto en archivos con grep Ejemplos:

grep "spc_eee1.gif" *
grep -r -i "textoAbuscar" *.*

-r = Recursivo, osea se mete a los subfolders
-i = ignora si estan en mayusculas o minusculas

-- Buscar texto en archivos y mostrar el número de línea

 grep -nr textoabuscar

-r = recursivo
-n = regresa el número de línea donde se encontró el texto

-- El comando awk sirve para buscar y manipular datos en archivos de texto estructurado como archivos separados por coma (csv) o archivos separados por espacios

Por ejemplo para filtrar las IPs de un log de apache

awk '{print $1}' access-hackvolution.log

En el ejemplo anterior se repetirán mucho las IPs para que solo aparezca una coincidencia, podemos emplear:

awk '{print $1}' access-hackvolution.log |sort |uniq

sort ordena los resultados y
uniq solo deja los resultados únicos

Otra cosa que podríamos necesitar, es el ver cuántas veces se repite una IP en el archivo:

awk '{print $1}' access-hackvolution.log |sort |uniq -c |sort -rn

uniq -c cuenta el número de coincidencias
sort -rn ordena en -reverse numerical- es decir de forma numérica del mayor al menor

-- buscar texto en los scripts sh que contengan el texto user

find / -name '*.sh' 2>/dev/null | xargs grep -i 'user'

-- buscar los archivos con extensión .ksh, .sh, .pl .py .zsh .bash .bsh .sql

find / -type f \( -iname \*.ksh -o -iname \*.sh -o -iname \*.pl -o -iname \*.py -o -iname \*.zsh -o iname \*.bash -o -iname \*.bsh -o -iname \*.sql \)

-- Buscar archivos de texto que inicien con los caracteres #! Y que pertenezcan a cierto usuario

find / -user $UID -type f | while read fn; do head -n1 "$fn" | grep -q "^#\!" && echo "$fn" && chmod 755 "$fn"; done

-- buscar cadena de caracteres password en archivos script

grep --include=\*.{ksh,sh,pl,py,zsh,bash,bsh,sql} -rnw '/' -e "password"

-- otras opciones

 grep 'user' $(find / -name '*.sh')
 find / -name '*.sh' -exec grep 'texto' {} \;

Ejemplos desde: http://unix.stackexchange.com/questions/20262/how-do-i-pass-a-list-of-files-to-grep

-- hacer cat y remover comentarios # en carchivos .conf también remueve espacios antes del hash

 cat /etc/squid/squid.conf | egrep -v "^\s*(#|$)"

-- remover primer y último carácter
[A6014201]
[A6144792]
[A6005026]

cat lista.txt | cut -c 2- | sed 's/.$//' > clean-lista.txt

A6014201
A6144792
A6005026

-- Para obtener las IPs válidas de un archivo de texto usando regular expresions RegEx:

 grep -oE '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' file.txt

--Checar el sistema de inicio

cat /etc/inittab

--montar un floppy con formato MSDOS

mount -t msdos /dev/fd0 /floppy

-- montar cd-rom

mount cd-rom
mount -t iso9660 /dev/cdrom /media/cdrom/

-- montar USB

montar disco externo
mount /dev/sdb1 /media/usb
montar en otro directorio
mount /dev/hda2 /home

-- montar particion NTFS en linux

mount -t ntfs-3g /dev/sda2 /media/DiscoLocalC -o force

-- checar si linux reconoció un disco o un hardware que se acaba de conectar?

dmesg
dmesg |grep sdb

-- descomprimir un archivo con extensión zip

tar -xzf [filename]

-- descromprimir archivos .zip

unzip filename

-- listar archivos que se encuentran dentro del archivo zip

unzip -l filename

-- Como ejecutar un comando cada determinado tiempo

 watch -n 300 df -h

El anterior comando ejecuta cada 300 segundos el comando df -h

--Archivo de configuración de red para la interfaz eth0 (direccion ip, default gateway, MAC address, etc) en Fedora En Fedora y Derivados RedHat

 cat /etc/sysconfig/network-scripts/ifcfg-eth0

En Ubuntu y Derivados Debian

 cat /etc/sysconfig/network

Ejemplo archivo de configuracion CentOS

HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.203
PREFIX=24
GATEWAY=192.168.2.254
DNS1=192.168.2.254
DNS2=8.8.8.8
DNS3=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
ONBOOT=yes

-- Reinicar servicio de red sin hacer flush

 systemctl restart network

///////////////// Busqueda de archivos y texto dentro de archivos //////////////////////////////

--Buscar archivos en todo el disco duro incluyendo unidades montadas -- Busca archivo de nombre miarchivo.htm

 find / -name 'miarchivo.htm'

-- Busca archivos que inicien con "log-" ejemplo: log-20100724.log, log-20200725.log, etc.

find -name 'log-*'

-- Busca archivos cuyo tamaño sea mayor a 1000 Kb

 find -name '*' -size +1000k<

-- Buscar archivos con tamaño mayor a 50Mb

 find . -type f -size +50000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

-- Buscar archivos grandes cuyo tamaño sea mayor a 1Gb

  find / -type f -name '*' -size 2G

-iname busca archivos sin ser sensitivo a mayusculas minusculas
-name busca archivos con el nombre siendo sensitivo a matyusculas minusculas. Si buscas por un archivo llamado "MiArchivo" y lo buscas con el siguiente comando:

    find / -name miarchivo (no lo encontraras) deberas usar el comando:
    find / -iname miarchivo o bien find / -name MiArchivo

Mas ejemplos en: http://linux.about.com/od/commands/a/blcmdl1_findx.htm

-- Para buscar todos los archivos "grandes" mayores a 20 Mb en todo el equipo

find / -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'

-- Buscar archivos grandes o mayores a cierto tamaño

-- Este comando encontrará los archivos en todo el disco duro que sean mayores a 100 Mb

find / -size +102400k

-- Buscar los archivos más grandes del directorio actual, regresa los 10 más grandes, modificar el número de head para traer más y menos archivos

du -hs * | sort -rh | head -10

-- Buscar los archivos más grandes del directorio actual incluyendo subdirectorios, regresa los 10 más grandes, modificar el número en head para regresar más o menos archivos

 du -Sh | sort -rh | head -10 

-- ver el tamaño de las carpetas ordenadas del más pequeño al más grande

 du -hs * | sort -h

-- extraer IPs de un csv por ejemplo Rapid7 y quitar repetidas y ordenarlas en order númerico

cat tercer_rango.csv|cut -d"," -f1|sort -u |sort -t . -k 3,3n -k 4,4n > tercer_rango.txt

-- Emplea el siguiente comando para ver los tamaños de los archivos:

   find / -size +103400k | xargs ls -laAh

-- Emplea "find ." para buscar solamente en el directorio actual y ver los tamaños de los archivos

   find . -size +103400k | xargs ls -laAh

--Para buscar archivos que contengan guiones o signos de puntuación en el nombre emplea el comando

find / -iname <inicionombre'*'>

Ejemplo:

find / -iname 'bittorrent*'

encontrara archivos con nombres como bittottent-course, bittorrent.mo, bittorrent-4.4.0, etc


Mas info en: http://www.phpman.info/index.php/info/find
ver linux wildcards http://www.codecoffee.com/tipsfor/articles/26-1.html

--Buscar en todos los archivos *.htm que tengan el texto "wants to contact you"

find ./ -name *.htm |xargs grep "wants to contact you"

equivalente en windows find "spc_eee1.gif" *.*

--Buscar archivos excluyendo / excluir un folder en especial, por ejemplo tmp

find / \( ! -name tmp -o -prune \) -name "file.rar" -print 2>/dev/null

--Otro comando para buscar arvhivos es el siguiente aunque el disco duro debe estar indexado para que funcione correctamente, en caso de no encontrar el archivo buscado, emplear find que no requiere de un indice.

locate <nombredelarvhivoabuscar>


///////////////// <FIN> Busqueda de archivos y texto en archivos //////////////////////////////

-- descargar archivos del web

 wget http://librosgratis.com/pythonforbegginers.pdf

-- descargar todo un index of de libros

 wget --recursive --no-parent https://repkam09.com/files/packt/

Para evitar que se copie el index.htm que se autogenera

 wget -r -np -R "index.html*" https://repkam09.com/files/packt/

-r = recursive
-np = no parent
-R = reject


///////////////// Cambiar Fecha y hora //////////////////////////////

-- cambiar fecha y hora

date MMDDhhmmyyyy

donde MM = mes
DD = dia
hh=hora
mm= minutos
yyyy= año

Por ejemplo para poner la fecha y hora a: 9:07pm del 31 de Mayo 2008

 date 053121072008

-- Mostrar la fecha actual en el formato aaaa-mm-dd

 date -I

-- Mostrar la fecha actual en formato aaaammddhhmm

 date +%Y%m%d%H%M%S

-- Para cambiar la zona horaria (time zone) 1. Para Ubuntu:

dpkg-reconfigure tzdata

http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/

1.- Firmado como root, verifica que time zone esta usando tu sistema con el comando "date". Veras algo como "Mon 17 Jan 2005 12:15:08 PM PST", PST en este caso es el timezone actual.

2.- Cambia al directorio /usr/share/zoneinfo en este directorio encontraras una lista de regiones de zona horaria (time zone regions) si vives en Canada, Estados Unidos o Mexico el directorio es "America"

3.- Es buena idea respaldar la anterior configuracion de timezone copiando a una directorio diferente como:

mv /etc/localtime  /etc/localtime-old

4.- Crea un symbolic link desde el timezone apropiado a /etc/localtime. Ejemplo:

ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime

5.- Si tienes la utilería rdate, actualiza la hora actual ejecutando:

/usr/bin/rdate -s time-a.nist.gov

6.- Configura la entrada de ZONE en el archivo /etc/sysconfig/clock (eje: ZONE="America/Mexico City")

7.- Configura el reloj del hardware ejecutando:

/sbin/hwclock --systohc

Pasos basados en: http://www.wikihow.com/Change-the-Timezone-in-Linux

-- Para cambiar el TimeZone en Fedora RLEH 5 el comando es:

system-config-date

///////////////// <FIN> Cambiar Fecha y hora //////////////////////////////

--Enviar mensaje a otro usuario mediante comando

wall "Nada mas jugando"

-- Enviar mensaje a otra terminal directamente, esto es útil por ejemplo cuando tienes una terminal en modo gráfico que no recibe wall por no estar registrada como una terminal tal cual, el primer paso es sacar el ID de la terminal a la que le quieres enviar mensaje con el comando:

tty

Por ejemplo la respuesta podría ser:

/dev/pts/7

ya que conocemos el número lo ponemos así

echo "Naa mas jugando" > /dev/pts/7

-- Desactivar la recepcion de mensajes con wall

mesg n

-- Para enviar un mail desde linea de comando

echo "20 minutos para la junta" | /bin/mail -s "Meeting" micorreo@miservidor.com

-- compilar un programa en c

gcc -o nombreejecutable sourcecode.c


-- Kernel version, realese, sistema operativo en Fedora o Red Hat

uname -a
cat /etc/redhat-release

-- Version Ubuntu -- Version BackTrack

lsb_release -a

--Checar tipo de procesador

 uname -m o
 cat /proc/cpuinfo

-- crear imagen .iso de un CD-ROM

dd if=/dev/hdc of=/home/username/cdcopy.iso

Desmontar la unidad de cd rom primero, ejemplo:

umount /dev/hdc

otra opcion de crear imagen .iso es mkisofs

mkisofs -r -v -J -l -o /opt/isocopymkiso.iso /media/PIAE_6/

-- Quemar discos desde imagen ISO

cdrecord -v -pad speed=1 dev=ATAPI:1,0,0 src.iso

Modificar el parametro dev para adaptarlo al tipo de CD ROM que tenga la computadora en question

///////////////// Bash Shell ///////////// -- Ver el shell actual

 echo $SHELL

-- Ver los shells disponibles

 cat /etc/shells

--Ciclo for para realizar tareas repetitivas ejemplo ping a un rago de IPs desde el shell

for i in $(seq 1 1 10); do ping 192.168.16.$i -c 1; done

--Otra forma sería

for i in $(seq 20 -1 1)
do
echo $i
ping 192.168.16.$i -c 1
done

-ciclo for para ejecutar comandos que se leen desde un archivo

for word in `cat notes.txt`; do bash -c $word; done;

-- ciclo for para hacer ping a varias IPs y ver cuales responden utiliza un tipo de grep or

for i in $(seq 241 1 254); do ping 10.10.10.$i -c 1; done | grep 'statistics\|packets'

-- ciclo while para ejecutar comandos que se leen desde un archivo

while read word; do bash -c $word; done < notes.txt

--- 172.16.4.20 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

19
PING 172.16.4.19 (192.168.16.19) 56(84) bytes of data.

--Mover archivos uno por uno cuando aparece el error como:
-bash: /bin/mv: Argument list too long

   for i in `find . -name ap\*`
   do
   mv $i ..
   done

-- Mover muchos archivos por extension en caso de recibir el error: Too many arguments

find . -type f -name "*.txt" -exec mv {} /opt/movehere/ \;

--Cambiar extensiones en varios archivos

for f in *.htm; do mv $f `basename $f .htm`.html; done;

--Para iniciar en modo texto editar el archivo /etc/inittab la linea que dice id:5:initdefault cambiar el 5 por 3.

--cambiar el prompt bash

 PS1="[\t][\u@\h:\w]\$ "


//////////// SSH //////////////

-- Para copiar archivos de forma segura entre maquinas linux usando SCP o SFTP Sftp y scp no requieren un demonio dedicado puesto que los dos programas se conectan a los servidores sshd.
Para poder usar sftp y scp tienes que insertar la siguiente linea en el archivo de configuracion /etc/ssh/sshd_config (RedHat Linux).
Subsystem sftp /usr/libexec/openssh/sftp-server

scp [opciones] origen destino Ejemplo:

-- Copiar un archivo local hacia un host remoto

scp archivo-origen usuario@host:directorio/archivo-remoto

-- Copiar archivo desde un host remoto

scp usuario@host:directorio/archivo-origen archivo-destino

-- Si el host remoto esta en un puerto diferente al default de scp que es 22 usar la opción -P (port o puerto)

scp -P 2222 usuario@host:/directorio/archivo-origen archivo-destino

-- Copiar todo el folder a un host remoto usar la opción -r (recursive o recursivo, ósea incluir directorios)

scp -r directorio-origen usuario@host:directorio-destino

-- Copiar todo el folder de un servidor remoto al directorio actual con llave privada

scp -r -i /Users/lmoreno/MyDropbox/EC2/EC2.private root@stream.com:/var/www/html/content/user_1/shoutcast198/* .

-- Copiar un archivo local a servidor remoto con diferente puerto y llave privada

scp -P 443 -i /Users/lmoreno/MyDropbox/EC2/Luisit0.private /Users/lmoreno/MyDropbox/EC2/EC2.private ubuntu@kolibers.com:/home/ubuntu

-- Copiar todo el contenido de un folder / directorio Copiar todo el directorio local /vmfs/volumes/datastore hacia un equipo remoto con IP 192.168.16.1

Ejemplo:

scp -r /vmfs/volumes/datastore/ root@192.168.16.1:/vmfs/volumes/
scp -Cpr /var/www/html/images/products lmorenor@192.168.16.5:/var/www/sites/www.mysitioweb.com/images/products

-- Stop ssh detener ssh

cd /etc/rc.d/init.d
sh sshd stop

o bien

service sshd stop

--Kill SSH sessions - Matar sesiones SSH

netstat -tanp (Y localiza las lineas que dicen ESTABLISHED)

-t = protocolo TCP
-a = all sockets que escuchan y sockets que no escuchan
-n = direcciones numericas
-p = muestra el nombre y PID del proceso al cual pertenece el socket (requiere permisos de root)

-El PID a matar es el que esta en la última columna y esta separado por una diagonal ejemplo:
tcp 0 1928 ::ffff:192.168.1.69:22 ::ffff:200.52.71.2:22161 ESTABLISHED 29460/sshd: lmoreno

kill 29460

No usar kill -9 si puedes evitarlo. Ya que no siempre permite a los demonios limpiar sus archivos temporales, bloqueos, etc. Usa kill -TERM PID o kill -15 PID

-- Para que los usuarios que se queden logeados el sistema los saque en determinado tiempo o timeout y los usuarios no se queden firmados si no estan usando la terminal
En /etc/ssh/sshd_config agregar las lineas

ClientAliveInterval 600
ClientAliveCountMax 3

Esto dará un timeout de 30 minutos (600 sec x 3)

-- Para cambiar puerto de escucha por default (22) de ssh realizar siguiente:

vi /etc/ssh/sshd_config

Localiza la siguiente entrada:

#Port 22

Cambiar por el número de puerto que deseas

Port 2995

Reinicia el servicio

service sshd reload

Prueba el acceso con el nuevo puerto

ssh username@myhostnaname.com -p 2995

Si el puerto continúa siendo el 22 aún después de estos cambios puede ser que estés usando xinetd.d si es el caso edita el siguiente archivo y cambia el puerto

  vi /etc/xinetd.d/sshd

Code:

service ssh
{
        disable = no
        socket_type             = stream
        type                    = UNLISTED
        port                    = 22
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/sshd
        server_args             = -i
}

Cambiar "port = 22" por el nuevo puerto y reinicia el servicio

En ocasiones se está detrás de un proxy y no se puede emplear SSH, para estos casos emplearemos una configuración y un paquete que se llama corkscrew (sacacorchos)

-- Instalar corkscrew dependiendo de la distribución, corkscrew sirve para hacer tuner de SSH sobre HTTP Descargar corkscrew desde:

http://www.agroman.net/corkscrew/
cd Downloads
tar -xvzf corkscrew-x.y.tar.gz
cd corkscrew-x-y
./configure --host=apple
make
cp corkscrew $HOME/.ssh/

-- descomprimir archivos gzip .gz

gunzip /usr/share/wordlists/rockyou.txt.gz

-- descomprimir archivos .7z

7za e hashcat-2.00.7z -ohashcat2

e = extract -ohashcat2 = descomprime el contenido en el directorio hashcat2

-- Editar el archivo

vim $HOME/.ssh/config

-- y agregar esta líneas

ProxyCommand $HOME/.ssh/corkscrew ip-del-proxy puerto %h %p

Con frecuencia cuando estamos trabajando constantemente con servidores nos enfrentamos a la situación de que nos desconecta y la sesión se queda activa, entonces debemos reconectarnos y matar la sesión, en resumen es un dolor de muelas.
Para evitar lo anterior podemos configurar tanto al server como al cliente para que se mantengan comunicando a pesar de que nosotros dejemos de enviar comandos.
Para servidores que son muy críticos se recomienda que no se modifique la configuración ya que es peligroso si la sesión se queda abierta.
Del lado del servidor modificar el archivo

/etc/ssh/sshd_config
vim /etc/ssh/sshd_config

Buscar las líneas siguientes y poner los valores que se muestran:

 ClientAliveInterval 200
 ClientAliveCountMax 3

ClientAliveInterval enviará paquetes nulos al cliente cada 200 segundos 3.33 segundos, en caso de que no reciba respuesta después de tres intentos se desconectará, así que en caso de que pierdas conectividad la sesión se mantendrá activa por más tiempo.

Del lado del cliente modificar .ssh/config con los siguientes parámetros:

vim .ssh/config
ServerAliveInterval 60
ServerAliveCountMax 10

El cliente esperará por 60 segundos (ServerAliveInterval) y enviará un "no-op null packet" al servidor esperando respuesta. Si la respuesta no llega, entonces volverá a intentar 10 veces, 10 (ServerAliveCountMax) por 60 (600 seconds = 10 minutos). Si el servidor no responde entonces el cliente finaliza la conexión.

Algunas veces solo una configuración del lado del cliente funciona otras es necesario modificar el servidor también.

///////////////// <FIN> SSH /////////////

-- Procesos --Para ver todos los procesos incluso de otros usuarios

ps -al

--muestra los procesos y su crontab asociado

ps -auxfw

-- muestra los procesos que están consumiendo más ciclos de procesador

top

Para salir de top presionar q para más información sobre el comando unar man top

-- <FIN> Procesos

-- Permisos de archivos -- Cambiar permisos

chmod u+wr,g+wr,o-r
chmod 664

read = 4 o 22
write = 2 o 21
execute = 1 o 20

Se asignan de la siguiente forma read/write/execute root/user/group

-- Por ejemplo para hacer un archivo ejecutable para todos:

chmod 111 <nombreDelArchivo>

-- Para asignar todos los permisos a root

chmod 700 <nombreDelArchivo>

-- Para asignar todos los permisos a un archivo (esto es peligroso, no lo deberías hacer, solo en casos extremos)

chmod 777 <nombreDelArchivo> 

-- Para asignar control total a todos los usuarios en una carpeta llamada webdoc incluyendo todos los archivos y todas las subcarpetas

chmod 777 -R archivos/*

Donde -R es recursivo es decir se mete a las carpetas y aplica el cambio en subcarpetas y archivos dentro de la carpeta raíz que en este caso fue webdoc

-- clonar permisos de un archivo a otro, copiar permisos de un archivo a otro

chown --reference=otherfile thisfile

--crear un device file

mknod /dev/fd1 b 2 1

--Cambiar owner

chown luis /carpeta/archivo
chown luis.grupo /carpeta/archivo
chgrp grupo /carpeta/archivo

-- <FIN> Permisos de archivos

-- Samba para compartir archivos con clientes Windows -- config file

/etc/smb.conf
/etc/samba/smb.conf en trixbox

-- Config basica compartir carpeta

[global]
workgroup = workgroup
server string = trixbox PBX
local master = no
domain master = no
preferred master = no
password server = None
guest ok = yes
guest account = root
security = SHARE
dns proxy = no
[CSrecordings]
path = /opt/backup/
guest ok = yes
writeable = no
create mask = 0777

-- <FIN> Samba para compartir archivos con clientes Windows

--crear un device file

 mknod /dev/fd1 b 2 1

-- Copiar cd de musica al disco duro

yum install cdparanoia
cdparanoia 5 track05.wav

-- Convertir a mp3

lame track05.wav track05.mp3


//////////////////// Comprimir archivos, folders o carpetas /////////////// --listar archivos o el contenido dentro del archivo zip

unzip -l nombre-archivo

-- Comprimir archivos a formato zip

gzip nombrearchivo

-- Comprimor archivo en formato zip

zip ips.zip ips.txt

-- Comprimir archivos

tar -zcvf archive_name.tar.gz directory_to_compress

-z gzip -gunzip -ungzip
-c create cear nuevo archivo
-v verbose desplegar info en la pantalla
-f file nombre del archivo

-- Comprimir directorios, folders, carpetas en formato gzip

zip -qq -R archivozip directorio

Este comando comprimira todo el contenido del directorio incluyendo los subdirectorios en el archivo "archivozip" o

zip -qq -R archivozip

Este comando comprimira todo el contenido del directorio actual incluyendo subdirectorios qq = (silent o silencioso)
R = Recursivo, que incluye los subdirectorios

-- Comprimir archivos con extension .html

find . -name "*.html" | xargs zip HTMLs-Nessus

No es necesario poner la extensión .zip ya que zip lo hace por nosotros

-- Descomprimir el directorio

unzip -qq archive -d ruta-directorio

Este comando descomprimira o extraera el contenido del archivo dentro de la ruta indicada en "ruta-directorio"

Atencion: Si el archivo es muy grande (Gbyte) esto representa un gran problema para linux. Es mucho mejor usar P7ZIP, NO zip, tar, gzip, etc.!!

-- Descomprimir archivos formato tar .tar.bz2

tar -xvjf file.tar.bz2

x - extract
v - verbose
j - bzip2
f - file

-- Descomprimir archivos .tar

tar -xvf foo.tar

-- Descromprimir archivos .gz

gunzip archivo.gz

-- Descromprimir archivos .zip

unzip nombre-archivo

-- Descomprimir archivos rar instalar unrar con yum

yum install unrar

luego ejecutar

unrar x archivo.rar

//////////////////// <FIN> Comprimir archivos, folders o carpetas ///////////////

-- Activar VNC Server Pasos rapidos Una guia rapida de los pasos necesarios para configurar un escritorio remoto usando VNX en Red Hat Enterprise Linux 4 CentOS y derivados

Pon un password con el comando:

vncpasswd

Editar el archivo

/etc/sysconfig/vncservers

Habilita el servicio con

chkconfig vncserver on

Inicia el servicio con

service vncserver start

Edita el archivo siguiente si deseas una sesion mas avanzada que solo twm y un xterm

/home/username/.vnc/xstartup

-- <FIN> Activar VNC Server Pasos rapidos

--Concatenar archivos en uno solo

cat *.csv >> archivoconcatenado.csv

-- Ver la historia de comandos ejecutados

history

--Lista de comandos en el history file del 125 al 130

fc -l 125 130

-- Ver el historial de comandos con fecha y hora

fc -li 100

-- Formato de hora y fecha para history

HISTTIMEFORMAT="%Y-%m-%d %T "

--Ejecutar comandos del historial history

!n

Ejemplo para ejecutar el comando 415: !415

--Limpiar historial de comandos o command history

history -c

o bien editar archivo

~/.bash_history

--Desactivar activar SELinux

echo 1 >/selinux/enforce otras versiones de linux
setenforce 0 #desactivar en Red Hat
setenforce 1 #activar en Red Hat

--GUI en texto o XWindow- Modificar Firewall

system-config-securitylevel

-- Crear un alias

alias ll='ls -lh --color=tty'

Ejemplos alias:

alias logseg='less /var/log/secure'
alias tlogseg='tail -20 /var/log/secure'

--Hacer un alias persistente Poner el comando dentro del archivo .bashrc ejemplo:

vi /home/<nombredeusuario>/.bashrc

incluir la linea de alias en el archivo

# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias 174='ssh lmoreno@200.52.71.174'

-- Remover un alias

unalias ll

--Buscar reemplazar y/o eliminar texto en archivos Este comando busca el string lname,fname y elimina la linea donde se encuentre en el arvhivo csvfile.csv y crea el archivo noheaders.csv sin dichas lineas.

sed -e '/string-aqui/d' /opt/archivo-origen.csv > archivodestino.csv

-- Eliminar el caracter CR o el retorno de carro de Windows para convertirlo en tipo Linux

sed -i 's/\r$//' nombredelarchivo.txt

-- Busca un patron y borra desde el patron hasta el final del archivo

sed -i '/mfa/,$d' ~/.aws/credentials

--Archivo para cambiar la resolucion de pantalla

/etc/X11/xorg.conf

////////////////// Puertos y servicios asociados ///////////////////////

-Ver puertos abiertos

http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/security-guide/s1-server-ports.html

Hay varias formas de ver que puertos estan abiertos:

-- Conexiones establecidas

netstat -pn -A inet

-- Conexiones en escucha

netstat -lpn -A inet
netstat -lantp

-l listening -a todas las conexiones activas con nombre de servicio -n todas las conexiones activas con puertos numéricos -t tcp -p PID/program -A inet solo queremos ver protocolos relacionados con la familia inet, es decir solo raw, tcp y udp, no queremos ver nada acerca de los sockets Unix que son para procesos de intercomunicación del sistema operativo

lsof -iTCP -sTCP:LISTEN
lsof -i

Otro metodo es usar nmap:

nmap -sT -O localhost

con el comando anterior veremos un resultado como el siguiente:

*******
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1596 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
111/tcp open sunrpc
515/tcp open printer
834/tcp open unknown
6000/tcp open X11
Remote OS guesses: Linux Kernel 2.4.0 or Gentoo 1.2 Linux 2.4.19 rc1-rc7)
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
*******

Para identificar el servicio que aparece como unknown (desconocido) ejecuta:

cat /etc/services | grep 834


Sin embargo este comando puede no regresar resultados esto indica que mientas el puerto esta en el rango de puertos registrados (0-1024) y requiere permisos de root para ejecutarse, no esta asociado con ningun servicio Pero lo siguiente que se puede hacer es usar netstat o lsof para conocer el uso del puerto

netstat -anp | grep 834
lsof -i | grep 834

--Regresa el numero de proceso que esta usando determinada aplicacion

pgrep sendmail

-- Grep y perl más avanzado con ejemplo de nmap busca los sistemas operativos que son vulnerables a un escaneo tipo window

cat  nmap-os-db | perl -ne 'while(<>) { chomp;if (/^fingerprint\s+([^\#]+)/i) { if (defined($owin) and defined($cwin) and $owin ne $cwin) { print "$oname ($owin vs. $cwin)\n";} $oname=$1;undef($cwin);undef($owin);} elsif (/^T(4|6)\(.*W=([^%]+)/) { if ($1 eq 4){$owin=$2;} else { $cwin = $2; }}}' | sort -f

//////////// Fin puertos y servicios asociados ///////////////////////

-- Alias de destinatarios de correo electronico email alias

vi /etc/aliases

despues de editar este archivo ejecutar el comando, para que se genere el archivo en formato que sendmail pueda leer

newaliases

-- Checar la temperatura en laptops y/o equipos que tengan soporte ACPI

acpi -t

-- Checar si hay link o conexion en la tarjeta de red y a que velocidad se amarro la tarjeta por default eth0

 ethtool eth0


//////////////// IPTABLES //////////////////// -- Archivo de scripts para iptables

 /etc/sysconfig/iptables

--reiniciar iptables

 service iptables restart

--Bloquear un host especifico iptables

iptables -I INPUT -s 192.168.16.8 -j DROP

--Permitir acceso a un puerto especifico e IPs específicas, bloquear el resto

 iptables -A INPUT -p tcp --destination-port 22 -m iprange --src-range 192.168.16.100 -j ACCEPT

Despues de agregar la politica reiniciar el servicio "service iptables restart" y probar

--src-range puede ser representado como 192.168.16.100-192.168.16.200


--listar reglas iptables activas

 iptables -L

-- Digamos que deseas hacer permitir que un cliente se conecte al servidor FTP pero solo por un momento o una descarga tienes que modificar tus filtros de iptables de la siguiente forma: (lo mismo aplicaría para otro protocolo SSH puerto 21, http puerto 80, etc)
Permitir momentáneamente una IP para que acceda al servidor FTP

/sbin/iptables -I INPUT -s 200.52.66.116/32 -p tcp --dport 21 -j ACCEPT

--Para borrarla después de las pruebas

/sbin/iptables -t filter  -D INPUT 1

//////////////// <FIN> IPTABLES ////////////////////


//////////////// Manejo de usuarios ////////////////////


administracion de usuarios -------------------

--agregar usuario / crear usuario

useradd <nombreusuario>

-- cambiar password

passwd <nombreusuario>

Ejemplo:

useradd -c "Luis Moreno" morenol

-c = campo GECOS el cual es usado regularmente para la descripcion del usuario
passwd mi_password

-- Otro ejemplo sin embargo varias de las opciones ya son ejecutadas por default en RedHat, Fedora, CentOS, se recomienda usar el ejemplo anterior

 /usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno && passwd mysupapassw0rd

-- Mismo que el anterior pero sin establecer el password para mayor seguridad

 /usr/sbin/useradd -d /home/lmoreno -s /bin/bash -c "Luis Moreno" lmoreno && mkdir /home/lmoreno && chown lmoreno /home/lmoreno

--borrar usuario

deluser <nombredeusuario>

Ejemplo:

deluser -r dsantos

-r = remueve el directorio home del usuario y el mailbox del usuario

--Ver usuarios del sistema

cat /etc/passwd

--Ver grupos del sistema

cat /etc/group

--Agregar un grupo

groupadd <nombredelgrupo>

-- Para bloquear un usuario o para desactivar usuario

 agregar el signo "+" delante de la línea del usuario en el archivo /etc/passwd

-- Para bloquear con el comando passwd

passwd -l <nombreUsuario>

--Agregar un usuario a un grupo existente Por ejemplo para agregar el usuario luis al grupo secundario/suplementario web con el comando usermod

usermod -a -G web luis

-- cambiar el grupo primario de un usuario

usermod -g www luis

<FIN> Manejo de usuarios -------------------


Politicas de password ---------------------

Editar el archivo /etc/login.defs y modificar los parametros al gusto


# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
# En español
# PASS_MAX_DAYS Numero maximo de dias que un password puede ser usado
# PASS_MIN_DAYS Numero minimo de dias permitidos para poder cambiar un password
# PASS_MIN_LEN Numero minimo de caracteres permitidos para un password
# PASS_WARN_AGE Numero de dias para envio de un aviso de que el password va a expirar
#
# Ver ejemplo abajo


PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 10


Para cuentas que fueron creadas sin una politica de passwords el comando "chage" puede ser usado para crear una. Para hacer obligatorio el uso de passwords robustos, necesitas agregar el modulo pam_cracklib.so al grupo password management en /etc/pam.conf (o la definicion aplicable en /etc/pam.d) La administracion de passwords es algo tedioso, pero es una de las tareas mas importantes para reforzar la seguridad de un servidor.
Esta al pendiente a los documentos de Tsares donde se explican los pasos para reforzar la seguridad de servidores Linux.


<FIN> Politicas de password ---------------------

//////////////// <FIN> administracion de usuarios ////////////////////

-- Para obtener informacion de DNS, IPs, MX records, etc

 host -a www.luismoreno.io

-a equivale a -v -t * "query type all"

 dig any www.tsares.net

-any = query type any

-- Para hacer un reverse lookup es decir tengo la IP pero quiero saber cual es el nombre que tiene asignado

 dig -x <direccion IP>

ejemplo:

dig -x 205.178.145.65

-- para regresar solo la información que nos interesa sin la información de dig usamos +noall +answer en ese orden

dig +noall +answer -x 147.167.64.245

-- para mostrar todas las entradas y regresar solo información útil enviar el siguiente comando

dig +multiline +noall +answer +nocmd kolibers.com ANY

-- Extraer CD u otra media desde el shell eject #Sin parámetros extraerá la media por default que en la mayoría de los casos es el cdrom

 eject cdrom

-- Servicios que pueden ser desactivados pues regularmente no se usan

cups - servicios de impresion en linux - desactívalo si no imprimes en linux
autofs - automount para usb drives, floppy's, cdrom's etc. - no lo desactives si quieres que automonte tu flash card, etc
apmd - estado de la batería, puede apagar el sistema si la bateria esta baja - desactivalo si no usas una laptop
isdn - provee servicios de isdn - desactívalo si no usas isdn para conectarte a otra red

Lista con servicios, demonios, procesos, frecuentes y su explicacion: http://www.comptechdoc.org/os/linux/how ... vices.html -- Desactivar un proceso o servicio para que no se ejecute al iniciar el sistema

chkconfig <servicio> off

-- Listar servicios activos y apagados del sistema

chkconfig --list


/////////////////// Servicio Telnet ////////////////////////////

-- Instalar servidor telnet (no se recomienda usar telnet ya que es inseguro, mejor utiliza ssh para entrar remotamente a tu sistema Linux

yum install telnet-server telnet
up2date telnet-server telnet

-- Ver y cambiar configuración telnet

vi /etc/xinetd.d/telnet

-- Cambiar puerto donde escucha telnet por default (23) al puerto 50005 (o el que se desee)

/usr/sbin/in.telnetd -debug 50005

-- Desinstalar telnet

rpm -q telnet
rpm -e telnet

/////////////////// <FIN> Servicio Telnet ////////////////////////////


-- Crear un hash de un archivo

 md5sum <nombredelarchivo>

//////////////////// Usando BitTorrent ////////////////////// -- Instala BitTorrent con el comando

yum install bittorrent

Descarga tu archivo .torrent desde algun sitio como www.isohunt.com, www.bittorrent.com

ejemplo: manuallinux.torrent

-- Para comenzar la descarga Ejecuta el comando

bittorrent-curse manuallinux.torrent

espera un poco para que la descarga inicie y al finalizar presiona la letra "q"

-- Empleando el cliente desde la línea de comando

sudo transmission-cli -w /home/ubuntu/tpb -p 50000 magnet:?xt=urn:btih:aa0f51e1fbe286d935c5674ac0e2f3de62362ccf&dn=linux.manual&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Fopen.demonii.com%3A1337

Donde: -w indica la ruta para descargar -p el puerto que está abierto para recibir conexiones de otros hosts magent: el link de descarga del archivo torrent ////////////////// <FIN> Usando BitTorrrent ////////////////

//////////// Checar ortografia en Linux /////////////////////

Es posible checar la ortografía de un archivo en Linux con el siguiente procedimiento Primero deberás tener instalado aspell puedes verificarlo simplemente tecleando en la línea de comandos

 aspell

Si recibes el mensaje: Usage: aspell [options] <command> quiere decir que si lo tienes instalado, en caso contrario usa yum para instalarlo en tu sistema algo así como yum install aspell

Si lo tienes instalado por default y tu sistema esta en ingles, descarga el diccionario en español más actualizado ejemplo:

wget ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell-es-0.50-2.tar.bz2

Descomprime el archivo e instala

tar -xvjf aspell-es-0.50-2.tar.bz2
cd aspell-es-0.50-2
make
make install

Ahora podrás checar la ortografia de un archivo de texto ejemplo:

aspell -c --lang=sp <nombredelarchivo>

//////////// <FIN> Checar ortografia en Linux /////////////////////

-- Convertir archivo en formato Windows o DOS con fines de linea CR LF a estilo unix con fines de linea LF

tr -d '\r' < archivoDOS > archivoUNIX-LINUX


-- Convertir archivo en formato DOS con fines de linea CR LF a estilo unix con fines de linea LF

dos2unix <nombredelarchivo>

-- Editor Hexadecimal para Red Hat

ghex

-- Ver archivos en modo Hexadecimal desde la linea de comandos

hexdump -C <nombrearchivo>

-- Para conectarse remotamente a un servidor Windows que tenga activado remote desktop o escritorio remoto Instalar rdesktop con

yum install rdesktop

Para conectarse a un servidor windows de nombre windowssrv con resolución de pantall de 1024 x 760 pixeles

rdesktop -g 1024x768 windowssvr

-- Reparar arranque en equipo dual boot de Windows y Linux - recuperar grub despues de instalacion de windows

chroot /mnt/
grub-install /dev/sda

-- Cambiar el nombre de los sistemas operativos de arranque si el boot loader es grub Editar el archivo menu.1st con el siguiente comando

vi /boot/grub/menu.lst

En este archivo cambiar de nombre por ejemplo donde dice "Other" que regularmente es Windows ponerle un nombre que desees como Windows Vista o Windows XP

-- Password for default keyring Para eliminar la petición de password cuando envía el siguiente mensaje: "enter password for default keyring to unlock" Eliminar el archivo

.gnome2/keyrings/default.keyring

http://www.linux-archive.org/fedora-user/116611-enter-password-default-keyring-unlock.html

-- En una lista de correos extraer solo el dominio

cat lista.txt | cut -d"@" -f2 | sed 's/^/@/'


-- Agregar un usuario al archivo sudoers para que pueda ejecutar comandos administrativos, editar el archivo /etc/sudoers

vi /etc/sudoers

Si se desea que el usuario pueda ejecutar cualquier comando empleando sudo agregar la línea: (pero recuerda que siempre es más seguro propocionar solo los permisos mínimos necesarios)

lmoreno ALL=(ALL)       ALL

lmoreno is not in the sudoers file. This incident will be reported.

//////////////////////// Direccionamiento IP, Ruteo, arp //////////////////////////

-- Archivo de configuracion IP estatica (RedHat y derivados como Fedora)

 vi /etc/sysscripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
HWADDR=00:0C:29:C8:AA:7C
IPADDR=192.168.16.3
NETMASK=255.255.255.0
GATEWAY=192.168.16.1
NETWORK=192.168.16.0
ONBOOT=yes
TYPE=Ethernet

-- Configuracion para IP dinamica DHCP Configuracion DHCP

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

-- Cambiar IP con el comando ifconfig

ifconfig eth0 192.168.1.5 netmask 255.255.255.0

-- Para ver la direccion IP actual de una interfaz

ifconfig <interfaz>

Por ejemplo, el siguiente comando mostrara la configuracion actual de la primer interfaz de red:

ifconfig eth0

-- Cambiar MAC address. MAC Spoofing esta es una tecnica para cambiar la MAC address de una tarjeta, muchas veces util para realizar pruebas de seguridad o hacking Primero dar de baja la interfaz, ejemplo:

ifdown eth0

o bien

ifconfig eth0 down

Posteriormente poner que MAC address deseamos con el comando:

ifconfig eth0 hw ether 00:01:02:03:04:05

Finalmente dar de alta la tarjeta nuevamente:

ifup eth0

Ahora la tarjeta ya sera reconocida con la MAC address 00:01:02:03:04:05

-- <Fin> direccionamiento IP --

-- DNS -- -- Agrear servidores DNS del equipo

echo "nameserver 192.168.16.254" >> /etc/resolv.conf
vi /etc/resolv.conf
nameserver direccionip

-- Limpiar los DNS o flush DNS

/etc/rc.d/init.d/nscd restart

-- <FIN> DNS --


-- Ruteo -- --Agregar una ruta por default

add default route
route add default gw 192.168.1.1

http://linux.about.com/od/commands/l/blcmdl8_route.htm


--para ver que default gateway asigno el dhcp

route -n

y buscar la entrada con las letras UG

--O bien usar

netstat -r

y buscar la entrada que diga default

-- ver las rutas estaticas del equipo

route -n

-- agregar una ruta de toda la red y enviarla al dispositivo eth0 (util cuando estás haciendo hacking como MITM o arp spoofing)

route add -net 200.66.81.64 netmask 255.255.255.192 dev eth0

-- <FIN> Ruteo --

--Cuando se cambia una IP o se desea renovar la direccion DHCP se debe dar de baja y alta la tarjeta Da de baja la tarjeta eth0

ifdown eth0

Da de alta la tarjeta eth0

ifup eth0

-- ARP -- -- agregar entrada arp

arp -s 200.66.81.110 00:04:23:DC:D9:AC

-- verificar entradas arp

arp -n

http://linux-ip.net/html/ether-arp.html

-- <FIN> ARP --

-- Cambiar hostname

hostname nuevonombre

Editar el archivo /etc/sysconfig/network

HOSTNAME=<nuevonombredehost>

el cambio tomara efecto hasta el siguiente reboot

si pones en /etc/hosts

127.0.0.1 <nombrequequieras>
el prompt cambia y php reconoce el hostname tambien

-- <FIN> Cambiar hostname --

-- Para ubuntu

hostname nuevonombre
/etc/hostname

-- Realizar un trazado empleando TCP y un puerto en particular por ejemplo puerto 80 (aunque puede ser otro puerto ejemplo puerto 25)

traceroute -T -p 80 72.14.213.104

-T = TCP
-p = port
-80 = puerto (80 HTTP)

Mas info en: http://www.linuxcertif.com/man/8/traceroute/40381/

-- Direccionamiento en Ubuntu editar el archivo

/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.254
dns-nameservers 192.168.1.254

-- Configurar IP estática en Ubuntu 18

 sudo vim /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        enp0s3:
            addresses: [192.168.1.2/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]
            dhcp4: no
    version: 2

Y al final ejecutar

sudo netplan apply

-- Configurar IP dinámica

sudo vim /etc/netplan/50-cloud-init.yaml
 network:
     ethernets:
         enp0s3:
             addresses: []
             dhcp4: true
     version: 2

Y al final ejecutar

sudo netplan apply

-- Reiniciar el servicio de red

sudo ip addr flush eth0 && sudo systemctl restart networking.service

-- Reinicar servicio de red sin hacer flush

systemctl restart network


Si acabas de cambiar la IP te va a desconectar de tu sesión actual

-- cambiar el nombre de una interface al inicio en ubuntu 16 up Crear el archivo

 /etc/udev/rules.d/70-persistent-net.rules

Agregar:

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="02:01:02:03:04:05", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"


-- DNS Ubuntu Editar archivo

/etc/resolv.conf


//////////////// <FIN> Direccionamiento IP, Ruteo, arp //////////////////////

//////////////// Instalacion desinstalacion de programas ///////////////// -- Instalar programas mediante rmp

rpm -ivh <nombre del archivo .rpm>

i = install
v = verbose
h= human
Ejemplo:

 rpm -ivh nessus.rpm

-- Muestra si el paquete esta instalado

 rpm -q "nombredelpaquete"

-- Ver que rpms estan instalados por rpm

rpm -qa

Ejempo: Para ver si esta instalada la aplicacion mysql

rmp -qa |grep mysql

--Remover desinstalar packages en caso de que tengan dependencias desinstalar paquetes

rpm -e --nodeps php-pear-1.4.9-1.2
rpm -e php-5.1.6-1.2

instalacion de programas con yum, uso de YUM - Instalar / desinstalar programas con YUM -------------------

-- Instalación de yum en versiones de red hat

http://dag.wieers.com/rpm/packages/yum/

--Buscar paquetes descargados con yum desde cierto repositorio tambien llamado repo o repository

rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{VENDOR}\n"|grep livna | sort

-- Para instalar un paquete

yum install <nombredelpaquete>

-- Para buscar un paquete

yum search <nombredelpaquete o comando> ejemplo yum search yacc

-- Para obtener informacion de un paquete

yum info net-snmp-utils

--Desinstalar paquetes con yum

yum remove <nombredelpaquete>

Cuando no se puede actualizar un paquete por errores en las dependencias se puede buscar los archivos que causan el problema, luego el paquete que depende de ese archivo y luego eliminar dicho paquete. Primero localizar el archivo ejemplo

locate libdts.so.0

Regresara el path donde se encuentra el archivo, ejemplo:

/etc/libdts.so.0

Despues usar

yum provides /etc/libdts.so.0

esto es para encontrar que paquete esta haciendo referencia
el resultado sera algo como

libdca-0.0.5-1.fc7

Finalmente remover dicho paquete

yum remove libdca-0.0.5-1.fc7


-- Instalar paquete de un repositorio especifico Deshabilita el repositorio que no quieres que tome ejemplo:

yum --disablerepo=extras install paqueteA

Para evitar que yum seleccione alguna vez el paqueteA de extras puedes agregar la siguiente linea a el archivo extras.repo en la carpeta /etc/yum.repos.d/:

 exclude=paqueteA

También hay plugins que pueden controlar que paquetes son seleccionados de que repositorios, como yum-protectbase, yum-priorities, y yum-versionlock.

-- Instalar paquetes que envian mensaje de que no están firmados "is not signed" con yum Para esto hay dos formas:

1. Usar simplemente "rpm -ivh paquete.rpm" (obtendras los siguientes resultados haciendo "yum localinstall package.rpm"); o 2. Editar /etc/yum.conf y cambiar el valor gpgcheck de 1 a 0.

-- Instalar otros repositorios como Wieers DAG rpmforge

 rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

http://dag.wieers.com/rpm/FAQ.php#B

Instalar EPEL

 rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rp

http://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F

 wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
 rpm -ivh epel-release-latest-7.noarch.rpm

-- verificar que est[a instalado

 yum repolist

-- como usar el repositorio epel repo para buscar un paquete

 yum --enablerepo=epel info zabbix

-- como instalr de epel

 yum --enablerepo=epel install zabbix



Otros temas relacionados con yum -------------

--Desinstalar paquetes con rpm

 rpm -e <nombredelpaquete>

--rpms y apt-get para red hat

 http://dag.wieers.com/rpm/FAQ.php#B

-- Si por alguna razon no baja el paquete que quieres instalar con Yum, te envia un error como el siguiente:

   [Errno 4] IOError: [Errno ftp error] [Errno ftp error] 502 Command REST not allowed by policy.
   Trying other mirror.
   no more mirrors to try

Descarga el file directamente del link desde el navegador (firefox) y ponlo en la carpeta:

/var/cache/yum/updates/packages

y ejecuta:

yum install nuevamente

-- Actualizar el sistema

 yum update

<FIN> Instalacion y uso de YUM --------------------------


-- Instalación de programas con dpkg Para instalar un programa desde un archivo con ext .deb ejecutar

 dpkg -i nombredelarchivo.deb

ejemplo para instalar Team Viewer en ubuntu 13.10

 sudo dpkg -i teamviewer_linux.deb

el comando anterior enviará errores de falta de dependencias, que se solucionan con el comando force como sigue:

 sudo apt-get install -f

nuevamente aplicar el comando de instalación para que ahora con las dependencias resueltas se finalice la instalación correctamente:

 sudo dpkg -i teamviewer_linux.deb

Instalacion y reproduccion de archivos de musica mp3, videos y peliculas ---------------------

Para la reproduccion de videos, mp3, etc y basicamente cualquier necesidad de reproduccion necesitas Real Player, VLC y XMMS

-- Reproducir mp3 y/o videos

--Instalar XMMS

rpm -ivh http://rpm.livna.org/livna-release-5.rpm

Solo soporte para mp3

yum -y install xmms xmms-mp3

--Instalar xmms con todos los adins

yum install xmms*
Si lo anterior no funciona instalar:
 http://www.gurulabs.com/downloads/xmms-mp3-1.2.10-16.i386.rpm

-- Tambien puedes instalar Real Player para Linux desde: Con este player puedes reproducir archivos mp3, peliculas .rmvb, etc www.real.com/linux descarga el rpm e instalalo por ejemplo si el rpm se llama RealPlayer11GOLD.rpm

rpm -ivh RealPlayer11GOLD.rpm

-- Para instalar VLC Ve a la pagina http://www.videolan.org/vlc/ y selecciona tu sistema operativo por ejemplo Fedora y ejecuta los siguientes comandos:

su - rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
yum install vlc
yum install mozilla-vlc (opcional)



Instalar Firefox ----------------

--Instalar firefox descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz

tar -xzvf nombrearchivo.tar.gz

x = extract
z = gzip
v = verbose
f = file

--Mozilla directory

/usr/lib/firefox-1.5.0.1/plugins

--Crear linkname para llama en firefox

ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

<FIN> Instalar Firefox ----------------



Instalar Flash Player ----------------

Los siguientes pasos describen como instalar Flash Player para Fedora pero debe funcionar con pocos cambios para otras versiones
El primer paso es ir al sitio de Adobe: http://get.adobe.com/flashplayer y seleccionar la opcion "YUM for Linux" y despues dar click en Download,
Ahora instala el RPM que acabas de descargar con el comando:

rpm -ivh adobe-release-i386-1.0-1.noarch.rpm (el nombre del archivo puede variar)

Una vez instalado el RPM ejecuta el siguiente comando:

su -c 'yum install flash-plugin alsa-plugins-pulseaudio libcurl'

Ahora cierra Firefox si estaba abierto y vuelvelo a abrir Para probar abre www.youtube.com y podras ver cualquier video

Para mas informacion y opciones de instalacion para 64 bits ve a: http://fedoraproject.org/wiki/Flash


<FIN> Instalar Flash Player ----------------



Instalar Java para Firefox ----------------

--Instalar Java

   descargar self extracting rpm
   mover archivo a /usr/java por ejemplo y hacerlo ejecutable,
   ejecutar archivo para que se descomprima e instale.

--Java directory

   /usr/java/jre1.5.0_06

--Crear linkname para llama en firefox

   ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

<FIN> Instalar Java para Firefox ----------------

--Instalar Java descargar self extracting rpm
mover archivo a /usr/java por ejemplo y hacerlo ejecutable, ejecutar archivo para que se descomprima e instale.

--Java directory

/usr/java/jre1.5.0_06

Instalar Firefox ----------------

--Instalar firefox descargar la ultima version y ejecutar el comando para descomprimir .tar.gz o .tgz

tar -xzvf nombrearchivo.tar.gz

x = extract
z = gzip
v = verbose
f = file

--Mozilla directory

/usr/lib/firefox-1.5.0.1/plugins

--Crear linkname para llama en firefox

ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so .

<FIN> Instalar Firefox ----------------


<FIN> Reproduccion de archivos de musica mp3, videos y peliculas -----------------------

--instalar ndiswrapper fc5hi

yum -y install kmod-ndiswrapper

--Instalar client de FTP Cliente

yum -y install gftp
 Una vez instalado para ejecutarlo solo escribe "gftp" en la linea de comandos.

--Instalar ambiente grafico gnome

 yum groupinstall "gnome"

--Instalacion desde codigo fuente entrar al directorio donde se encuentra el codigo fuente con

 cd /nombredelDirectorio
 ./configure
 make
 make install

--Instalar ntop

 http://www.howtoforge.com/network_monitoring_with_ntop



OpenOffice ------------------

--Para instalar diccionario en espanol ir a la siguiente pagina:

 http://wiki.services.openoffice.org/wiki/Dictionaries

Descargar el archivo llamado

 DicOOo.sxw

Dar doble click y aceptar la advertencia de ejecutar macros Seguir las instrucciones para descargar el diccionario que se desee


<FIN OpenOffice ----------------------

--Otros Repositorios de Fedora

 http://dag.wieers.com/rpm/
 http://rpm.livna.org/rlowiki/


//////////////// <FIN> Instalacion desinstalacion de programas /////////////////


///////////////////// vim o vi //////////////////////////////// -- Poner numeros de linea en vi

:set number

-- Quitar numeros de linea en vi

:set nonumber #quita numeros de linea


///////////////////// vim o vi ////////////////////////////////

-- Redireccionar los errores de salida de un comando a /dev/nul para que se desechen y no se muestren en pantalla

find / -name archivo 2>/dev/null
                                        • no estan en wiki

-- enviar un mail

 mail <usuario>

ejemplo:

 mail lmoreno@localhost
 subject: escribir titulo del mensaje y teclear enter
 escribir el cuerpo del mensaje y teclear CTRL + D
 CC: si quieres una copia escribir la dirección aquí en caso contrario teclear CTRL + D

El mensaje será enviado al destinatario

-- checar que MTA esta en uso, teclear:

 alternatives --config mta

There are 2 programs which provide 'mta'.

 Selection    Command

+ 1           /usr/sbin/sendmail.exim
  • 2 /usr/sbin/sendmail.sendmail

Enter to keep the current selection[+], or type selection number:

-- Para reenviar el correo que recibe root a otro usuario editar el archivo /etc/aliases

 vim /etc/aliases

remover la el comentario a la línea:

#root:           marc

cambiar la linea por el usuario al que se quiere enviar el correo ejemplo al usuario lmoreno

root:		    lmoreno

guardar el archivo con :wq ejecutar el comando:

newaliases

y probar enviando un correo a root para que lo reciba el nuevo usuario

-- cambiar de usuario

su -s /bin/bash - apache


-- ejemplos comandos tar http://www.tecmint.com/18-tar-command-examples-in-linux/

-- mejorar conf putty http://dag.wieers.com/blog/content/improving-putty-settings-on-windows

-- Listar discos en el sistema

fdisk -l

-- Vim encoding http://unix.stackexchange.com/questions/23389/how-can-i-set-vims-default-encoding-to-utf-8

-- copiar de windows a Linux con WinSCP http://ubuntuforums.org/archive/index.php/t-857784.html

-- all about Encoding http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html

--convertir encoding de nombres de archivos copiados con WinSCP desde Windows a Linux con eñes, acentos y caracteres especiales

convmv -f latin1 -t utf-8 -r --notest *

-- convertir archivos de text Windows notepad ANSI (ASCII) a UTF-8

iconv -f 8859_1 -t utf-8 2lista.lst > lista.lst

-- ver que tipo de archivo son todos los archivos con extensión mp3

find ./ -name "*.mp3" -print0 | while read -d $'\0' file; do file  "$file"; done > /opt/paso/mp3list.txt

-- ver el espacio usado en el disco

df -h

-- ver el espacio usado por cada folder

du -s /media/Nabucodonosor/data

-- ver el espacio usado por cada folder pero de forma resumida y total

du --max-depth=1 -h

-- ver archivos abiertos

lsof -i -n
lsof -p 8295

-i muestra el host -n sin resolver nombres (respuesta más rápida)

-- Montar un volumen en EC2 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

-- Permisos al folder /var/www/html apache para un nuevo usuario

chown -R apache:apache /var/www/html
usermod -a -G apache myuser
chmod 777 /var/www/html -R
chmod -R g+w /var/www/html

EC2

-- resize storage, resize partition expanding the storage space of a volume emplear todo el espacio en un volumen http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html

-- Respaldo de folder completo comprimido

tar -czvf myarchive.tgz mydirectory/

-- rsync copiar archivos incrementalmente

rsync -avzhP /home/lmoreno/datos lmoreno@192.168.1.50:/mnt/data/datosbackup

-v : verbose
-r : copies data recursively (but don’t preserve timestamps and permission while transferring data
-a : archive mode, archive mode allows copying files recursively and it also preserves symbolic links, file permissions, user & group ownerships and timestamps
-z : compress file dataroot a otro usuarioroot a otro usuario
-h : human-readable, output numbers in a human-readable format
-P : shows progress

http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

-- Copiar una carpeta remota a una local

 rsync -aOvzhP -e "ssh -i EC2.private" root@192.168.1.30:/var/www/html/content/user_1/shoutcast198 /home/ec2-user/logs/

-O no copiar atributos de hora de las carpetas

-- Primero crear la carpeta local donde se va a montar la carpeta compartida

mkdir -p /mnt/windows

-p = crea la ruta si no existe por ejemplo si no existiera /mnt también crea esta carpeta

-- Montar la carpeta compartida

mount -t cifs //servidor/carpetawindows -o username=luis.moreno,password=Misuperpassword /mnt/windows


Para versiones viejas de Red Hat Enterprise Linux menores o iguales a 4 o Debian menores o iguales a 3 usa este comando

mount -t smbfs -o username=luis.moreno,password=Misuperpassword //servidor/carpetawindows /mnt/windows


-t cifs o t smbfs = especifica el tipo de unidad a montar en este caso Common Internet File System o SMB que pertenece a Windows
//servidor/carpetawindows es el servidor y el nombre de la carpeta compartida Windows
-o son opciones que se le pasan al comando mount en este paso fue nombre de usuario (luis.moreno) y password (Misuperpassword)
/mnt/windows es donde se va a montar localmente la carpeta compartida de windows
Si el password tiene coma o apostrofe dejarlo sin password lo solicitará al ejecutar el comando


-- ver el contenido de la carpeta con

ls -l /mnt/windows

http://www.cyberciti.biz/tips/how-to-mount-remote-windows-partition-windows-share-under-linux.html

-- Crear archivo con con 0s

dd if=/dev/zero of=/test bs=1048576 count=1024


///////////////////// crontab ////////////////////////////////

-- ver los jobs programados

crontab -l

-- edit tar archivo crontab

crontab -e

-- también puedes ver el archivo directamente en la siguiente ruta, pero no es recomendable que lo edites directamente ya que el archivo es leído cuando el sistema inicia y se carga en memoria, el comando crontab -e es la mejor opción para editarlo pues interactúa con cron de manera correcta.

  /var/spool/cron/root

En Ubuntu

 /var/spool/cron/crontabs

Las líneas de crontab se ejecutan como se ve en la gráfica

* 	*      *   *    *        Comando a ejecutar
- 	-      -   -    -
| 	|      |   |	|
| 	|      |   |	+----- día de la semana (0 - 6) (Domingo=0)
| 	|      |   +------- mes (1 - 12)
| 	|      +--------- día del mes (1 - 31)
| 	+----------- hora (0 - 23)
+------------- min (0 - 59)

///////////////////// crontab ////////////////////////////////

-- Dividir un archivo en varias partes, ya sea por tamaño, número de líneas, etc. Ejemplo: dividir por tamaño

split -b 200M nombredearchivo

-- Ver el porcentaje de uso del Procesador

grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

En caso de que haya más de un procesador usar las variasntes

grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
grep 'cpu1 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'
grep 'cpu2 ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}'

-- enviar proceso al background

ctrl+z 

y luego teclear

bg

para traerlo de nuevo

fg

o si es más de un proceso

-- para ver los intentos de login en el archivo btmp usar el comando lastb, ejemplo:

last -f /var/log/btmp

El archivo btmp debe tener permisos limitados y solo para root ejemplo:

chown root:utmp /var/log/btmp && chmod 600 /var/log/btmp

-- Corregir error al aplicar apt-get update dpkg: error processing /var/cache/apt/archives/python-apport_2.0.1-0ubuntu9_all.deb

sudo dpkg -i --force-overwrite <filename>

En este caso

sudo dpkg -i --force-overwrite /var/cache/apt/archives/python-problem-report_2.0.1-0ubuntu9_all.deb

-- Ordenar IPs

sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n ips.txt

-t . separador de campo es el punto
-k 1,1n primer campo para ordenar es el 1, ordenar numérico

Cada campo es ordenado 1 a 1 en orden


-- Ordenado rápido

sort -V ips.txt

https://www.madboa.com/geek/sort-addr/

-- obtener IP pública

dig +short myip.opendns.com @resolver1.opendns.com
alias myip='dig +short myip.opendns.com @resolver1.opendns.com'

-- Que paquetes est[an instalados

rpm -qa
yum list installed
yum update && yum install yum-utils
repoquery -a --installed


-- Levantar una interface

 ip link  set eth0 up

-- Establecer una IP

ip addr add 10.23.34.46/29 dev eth0

-- Borrar una IP

ip addr del 10.23.34.46/29 dev eth0

-- Establecer ruta por default

ip route add default via 47.23.34.41 dev eth0

-- reiniciar servicios de red (networking) ubuntu

sudo service network-manager restart

-- modificar IP desde la interfaz gráfica gui

nm-connection-editor

-- ver cuanto tiene de memoria y cuantos slots ocupados y libres así como la capacidad total

dmidecode -t memory
lshw -class memory
dmidecode -t 16


-- iTerm2, dividir la consola en dos de forma horizontal

CMD + shift + D

-- iTerm2, dividir la consola en dos de forma vertical

 CMD + D