Comandos utiles para Linux

in #linux7 years ago

Comandos utiles para Linux

nano

Sirva para editar archivos de texto.  

Syntaxhighlight para nano

En CentOS o Ubuntu editar /etc/nanorc  

nano /etc/nanorc

Descomentar al final las siguientes secciones  

## Nanorc files
include "/usr/share/nano/nanorc.nanorc"

## C/C++
include "/usr/share/nano/c.nanorc"

## HTML
include "/usr/share/nano/html.nanorc"

## TeX
include "/usr/share/nano/tex.nanorc"

## Quoted emails (under e.g. mutt)
include "/usr/share/nano/mutt.nanorc"

## Patch files
include "/usr/share/nano/patch.nanorc"

## Manpages
include "/usr/share/nano/man.nanorc"

## Groff
include "/usr/share/nano/groff.nanorc"

## Perl
include "/usr/share/nano/perl.nanorc"

## Python
include "/usr/share/nano/python.nanorc"

## Ruby
include "/usr/share/nano/ruby.nanorc"

## Java
include "/usr/share/nano/java.nanorc"

## Assembler
include "/usr/share/nano/asm.nanorc"

## Bourne shell scripts
include "/usr/share/nano/sh.nanorc"

## POV-Ray
include "/usr/share/nano/pov.nanorc"

Cerrar nano y abrirlo de nuevo para ver la diferencia.  

Referencias

nslookup

Sirve para hacer analisis y revision de dominios (A, CNAME, MX, etc.)  

  • Para verificar el IP publico desde la consola usar: curl icanhazip.com
  • Ver tambien dig

rm

Elimina un archivo o directorio  

  • rm x.txt # Elimina el archivo x.txt
  • rm -rf /var/log/syslog # Elimina el directorio syslog
  • locate *55* | xargs rm # Busca todos los archivos que contengan '55' en el nombre y los elimina
  • sudo locate *55* | sudo xargs rm # Busca todos los archivos que contengan '55' en el nombre y los elimina (sudo si son archivos de sistema)

shutdown

Bajar el sistema de forma ordenada.  

  • shutdown now # Bajar el sistema de inmediato (para luego apagar la maquina dar init 0
  • shutdown -r now # Hacer un reboot de inmediato: reboot hace lo mismo
  • shutdown -P now # Bajar el sistema de inmediato y apagar la maquina

tar - Comprimir y descomprimir archivos

Descomprimir

  • Cuando se tiene un archivo comprimido del tipo .tar se decomprime con el comando:  tar -xvf filename.tar
  • Cuando ademas esta comprimido con Gzip, extension .tar.gz se usa:  tar -xvfz filename.tar.gz

Comprimir

  • Para comprimir un directorio
tar -zcvf nombre-archivo.tar.gz nombre-directory
  • Donde: -z: Compress archive using gzip program -c: Create archive -v: Verbose i.e display progress while creating archive -f: Archive File name

useradd, passwd - Creacion de Usuarios

  • Crear un usuario useradd -username-
  • Asignarle un password passwd -username-

sar - Ver historico de consumo de recursos

sar muestra el historico de la performance de un equipo cada 10 minutos.  

  • Performance de CPU sar
  • Performance de Memoria sar -r

rdesktop - Remote Desktop

  • Para establecer conexiones a otras PC (Windows) desde Linux se usa el rdesktop rdesktop -u <user> -p <password> -k en-us -T <WindowTitle> -a 16 -g 1280x1024 <IP of PC> para no escribir el password evitar la opcion -p - el sistema le pedira el password

find

  • Para encontrar archivos de cierto nombre find <directorio> -name <nombre-archivo>
  • Para renombrar los archivos de mayusculas a minusculas for f in `find`; do mv -v $f `echo $f | tr '[A-Z]' '[a-z]'`; done
  • Para encontrar archivos mayores a 90 dias de antiguedad find <directorio> -ctime +90
  • Para encontrar archivos mayores a 90 dias de antiguedad y eliminarlos find <directorio> -ctime +90 -exec rm {} -rf \;
  • Para buscar un texto en todos los archivos del directorio find -type f -exec egrep -H 'text-to-find-here' --color {} \;
  • Buscar todos los archivos que terminan en '.php' find -type f -name "*.php"

ln - Symbolic Link

  • Crear un symbolic link ln -s <dir a donde ira> <dir local que apuntara> Ejemplo: ln -s /var/www/html/website web # El directorio web apuntara a website

ls - List

  • Listar el contenido de un directorio
  • Ejemplos: ls # listar el directorio ls -l # listar el directorio con mayores detalles ls -lh # listar con mayores detalles y con los tamaños de archivo en forma de facil lectura ls -a # ver incluso los archivos escondidos
  • Para contar el numero de archivos y directorios ls | wc -w

scp - Secure Copy

  • Permite copiar archivos entre diferentes servidores o hosts scp [[usuario@]servidor-origen:]archivo-origen [[usuario@]servidor-destino:][archivo-destino] Opciones: -p Preserva permisos -q No muestra la barra de progreso -r Copia recursiva (incluir subdirectorios) -v Muestra mensajes para debugging
  • Ejemplos:  #scp root@zeus:/media/hd2/backup/webs/* webs/  #scp -r root@zeus:/media/hd2/backup/webs webs/
  • Mas ejemplos: http://www.hypexr.org/linux_scp_help.php http://www.garron.me/es/gnu-linux/uso-de-scp-en-linux-comando-para-copiar-sobre-ssh.html
  • scp GUI Para usar el Nautilus con conexion scp a otro host en Nautilus ir a Connect to Server y en server address ingresar ssh://user@host/folder/

du - Ver tamaño de directorios

  • du -h
  • du -h DIRECTORY
  • df -sh // desde root para ver espacio ocupado total

df - Ver espacio libre en mounts

  • df -h
  • df -h DIRECTORY

ifup/ifdown - Start and Stop Network interface (eth0)

  • Start interface ifup eth0
  • Stop interface ifdown eth0
  • Edit interface configuration Edit: /etc/network-scripts/ifcfg-eth0 or use setup as root
  • Verificar la velocidad de conexion: ethtool eth0

mail - Enviar email desde consola

  • mail -s "Subject" [email protected] // enviar un email con texto en blanco
  • mail -s "Subject" [email protected] < archivo.log // enviar un email con contenido del archivo de texto archivo.log
  • echo "This is the message body" | mail -s "This is the subject" [email protected]

Comandos Avanzados

Reemplazar texto en un archivo

  • Por ejemplo cambiar el texto 'abc' por 'XYZ' en el archivo /tmp/archivo.txt perl -pi -e 's/abc/XYZ/g' /tmp/archivo.txt sed -i -e 's/abc/XYZ/g' /tmp/archivo.txt
  • Mas complejo, por ejemplo en httpd.conf reemplazar el comentario con un server name del primer parametro sed -i -e s/"#ServerName www.example.com"/"ServerName $1"/g /etc/httpd/conf/httpd.conf

CentOS 6

Firewall IPTABLES

CentOS 7

hostnamectl

Permite cambiar el hostname asignado.  

# Ver el nombre del host actual
hostnamectl status
# Cambiar el nombre del host a host2
hostnamectl set-hostname host2

firewall-cmd

Permite manipular y configurar el firewall en un CentOS 7.  

Consultas al servicio

# Ver el estado del servicio
systemctl status firewalld.service
firewall-cmd --state
# Iniciar/detener el servicio
systemctl start firewalld.service
systemctl stop firewalld.service
# Ver todas las reglas
firewall-cmd --list-all

Abrir servicios o puertos adicionales

# Ver el estado del servicio
systemctl status firewalld.service
firewall-cmd --state
# Abrir un servicio (zone por defecto es public)
firewall-cmd --permanent --zone=<zone> --add-service=http
# Abrir un puerto
firewall-cmd --permanent --zone=<zone> --add-port=80/tcp
# Para grabarlo
firewall-cmd --reload

Bloquear direcciones IP

# Bloquear IP hasta proxima reiniciada del servicio
firewall-cmd --add-rich-rule='rule family="ipv4" source address="116.31.116.51" reject'
# Bloquear IP permanentemente
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="116.31.116.51" reject'
firewall-cmd --reload

Abrir puertos para ciertas IPs

# Dar acceso al puerto 8080 a las IPs de la red 200.60.5.x hasta la proxima reiniciada
firewall-cmd --add-rich-rule='rule family="ipv4" source address="200.60.5.0/24" port protocol="tcp" port="8080" accept'
# Dar acceso al puerto 8080 a las IPs de la red 200.60.5.x permanentemente
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="200.60.5.0/24" port protocol="tcp" port="8080" accept'
firewall-cmd --reload

Referencias