This is an old revision of the document!
Table of Contents
SFTP
Transferencia de un archivo desde hostA→hostB utiizando hostBridge como puente (puede no ser necesario; va bien “por si los firewalls”)
hostA> cat /path/to/local/file | ssh -2 -C user@hostBridge 'cat | ssh -2 -C user@hostB “cat>/path/to/remote/file”'
Si la transferencia es de Local → Remoto
local> cat /path/to/local/file | ssh -2 -C user@remoto “cat>/path/to/remote/file”
Si la transferencia es de Remoto → Local
local> ssh -2 -C user@remoto “cat /tmp/x” > /path/to/local/file
Enviar mensajes entre usuarios
write talk mesg wall who
Bucle
while true;do echo $i `netstat -an | grep 8889`;i=`expr $i + 1`;sleep 1;done
Mirar Hardware
dmidecode
lspci -v
Saber usuarios conectados
Who o finger
Redireccionar salidas a ficheros
Redirecciona la salida stderr (2) a stdout (1) y esta a un fichero:
ls -l jurjur >ls.out 2>&1
se puede redireccionar al vacio:
ls -l jurjur > dev/null 2>&1
Screen
Crear una ventana con un “titulo”:
#screen -S titulo
Recuperar esa sesión:
screen -R titulo
Recuperar sesion:
#screen -r
Para enviar comandos dentro de una sesión, pulsar ctrl+a y luego “:”
Cambiar titulo a una sesion activa:
:sessionname nuevo_titulo
Salir de la sesión en curso (sin cerrarla, ahí la gracia de screen):
CTRL + a + d
Multiusuario:
# sudo chmod +s /usr/bin/screen
# sudo chmod 755 /var/run/screen
Crear una sessió (amb el paràmetre -S li podem posar un nom més bonic)
# screen -S nomSessió
Definir-la como a multiusuari
Ctrl-a :multiuser on
Donar permisos a un usuari per veure la sessió
Ctrl-a :acladd usuari
Per evitar que l’altre usuari pugui editar
Ctrl-a :aclchg usuari -w "#"
L’altre usuari es pot connectar amb la següent comanda:
# screen -x usuariAmbScreen/nomSessió
Eliminar pitido shell
#xset -b
Montar ISO
#mount -o loop -t iso9660 fichero.iso /mnt/iso
GREP
[[:alpha:]] is the same as [a-zA-Z] [[:upper:]] is the same as [A-Z] [[:lower:]] is the same as [a-z] [[:digit:]] is the same as [0-9] [[:alnum:]] is the same as [0-9a-zA-Z] [[:space:]] matches any white space including tabs
Para ignorar un caso:
# nslookup wiki.legido.com | grep Address | awk '{print $2}'
192.168.1.3#53 87.221.36.185
Queremos quitar la linea de la “#” se hace con -v:
# nslookup wiki.legido.com | grep Address | awk '{print $2}' | grep -v "#"
87.221.36.185
Tema 64 bits:
* Para comprovar si una CPU es de 64 bits, se puede ejecutar en un terminal:
grep ' lm ' /proc/cpuinfo
(si no aparece nada, sólo es de 32 bits)
* Para comprovar si la CPU tiene extensiones “V”, se puede ejecutar en un terminal:
egrep '(vmx|svm)' --color=always /proc/cpuinfo
(si no aparece nada, pues nada de nada).
* Múltiples coincidencias:
grep -E 'hola|como|estas' fichero.txt
egrep '(hola|como|estas)' fichero.txt
Sintaxis bash
http://www.tldp.org/LDP/abs/html/
* Para sortear caracteres especiales:
mv -- \-mi\ fichero.rar /ruta/destino/
** Condiciones
- -ne (not equal)
- -eq (equal)
Rastrear una red
nmap redes rastrear scan
* Para ver las máquinas que hay en un segmento de red determinado:
nmap -sP 192.168.1.0/24
Uniq y sort
sort -n xferfaxlog.seguro > xferfaxlog.ordenado uniq xferfaxlog.ordenado xferfaxlog.unico
Puertos
Listar los puertos que están abiertos:
nmap -sT -O localhost
Listar el proceso que está okupando un puerto:
sudo lsof -ni :5666
Personalizar shell
En el fichero .bashrc de home:
export PS1='\e[0;31m\u@\h:\w\$ '
Tabla de colores (con 1; para claros):
Black | 0;30 | |
Blue | 0;34 | |
Green | 0;32 | |
Cyan | 0;36 | |
Red | 0;31 | |
Purple | 0;35 | |
Brown | 0;33 | |
Blue | 0;34 | |
Green | 0;32 | |
Cyan | 0;36 | |
Red | 0;31 | |
Purple | 0;35 | |
Brown | 0;33 |
Número de filas o columnas:
Podemos utilizar el comando resize que mira cuantas filas y columnas tenemos en pantalla y realiza:
# resize
COLUMNS=171; LINES=60; export COLUMNS LINES;
O ponerlas a mano:
# stty rows 60 # stty cols 171
Copiar
Copiar *.pdf de una estructura con directorios y subdirectorios a un solo directorio:
mkdir /destion && find /origen/ -iname '*.pdf' -exec cp {} /destino/ \;
Tráfico de una interfaz
Listamos paquetes y bytes de la interfaz eth0:
awk -F'[: ]*' '/eth0/{print $3"\n"$11}' < /proc/net/dev
Añadir ruta a $PATH
PATH+=nueva_ruta
O también:
export PATH=$PATH:nueva_ruta
Sustituír todas las ocurrencias de una cadena en un directorio
Da errores, pero furrula:
find . -exec perl -pi -w -e 's/texto_a_sustituir/texto_nuevo/g;' '{}' \; -print
Compilar
Dos paquetes interesantes:
build-essential module-assistant
Comparar archivos
comm --nocheck-order -23 archivo1 archivo2
Shared libraries
If you see a message like:
error while loading shared libraries: libzmq.so.1
Then try rebuilding the dynamic linking cache with sudo ldconfig prior to building pyzmq.
Varios
Introducir fecha y hora en el comando “history”:
echo 'export HISTTIMEFORMAT="%d/%m/%Y %H:%M:%S "' >> ~/.bash_profile exit
Al volver a entrar ya deberia aparecer al ejecutar:
history
No incluir en comando “history” aquellos que comiencen por un espacio:
echo 'export HISTTIMEFORMAT=ignorespace >> ~/.bash_profile exit
Poner color grep grepcolor. Lo ponemos en el /etc/profile para todos usuarios
alias grep='grep --color=auto'
Archivos
- Obtener el el “record size” de un archivo:
awk '{print length;exit}' 01.out 37
Abrir correos formato .eml
mv correo.eml correo.mht chromium correo.mht
Determinar si puerto de red cableado
Para interfaz “em1”:
cat /sys/class/net/em1/carrier
Resultado:
1 | cableado |
cat: /sys/class/net/em1/carrier: Invalid argument | no cableado |