====== sshfs ======
mount ssh
apt-get install sshfs
Montar para usuario normal
sshfs root@192.168.1.2:/media/2tb /mnt/2tb -o rw,noexec,nosuid,nodev,max_read=65536,allow_other
====== 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 sesión detachada por nombre :
screen -r titulo
Si está atachada, al poner -R mayúscula crea una nueva con el mismo nombre:
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ó
===== Hacer Scroll =====
Con screen no nos podemos hacer scroll en la ventana, con la rueda del ratón por ejemplo.
Se hace pulsando ctrl+a, luego esc y nos movemos con los cursores como si fuera un fichero de texto
====== 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
* Poner color grep grepcolor. Lo ponemos en el /etc/profile para todos usuarios
alias grep='grep --color=auto'
====== 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.
====== History ======
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
Historía infinita sin límite de entradas. Suele venir limitado y no ves los comandos de hace muuuucho tiempo
HISTSIZE=-1
HISTFILESIZE=-1
====== 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 ======
Listar interfaces:
ifconfig -a | grep "Link encap"
Ver si la boca esta cableada:
ethtool p1p3 | grep "Link detected"
====== Listar bibliotecas requeridas por un ejecutable ======
sudo objdump -x adb | grep NEEDED
NEEDED librt.so.1
NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
====== Listar bibliotecas compartidas requeridas ======
ldd /usr/local/sbin/zabbix_server
linux-vdso.so.1 => (0x00007fffde3ff000)
libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007fa3c566c000)
libnetsnmp.so.15 => not found
libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fa3c5404000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa3c50fe000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa3c4efa000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa3c4cf1000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fa3c4ad6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa3c4711000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa3c44f7000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa3c42d9000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007fa3c40a6000)
librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007fa3c3e8b000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fa3c3c2d000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fa3c3853000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fa3c360c000)
liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007fa3c33fd000)
libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007fa3c31ac000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa3c5bac000)
libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007fa3c2eed000)
libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007fa3c2c6e000)
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fa3c29a2000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fa3c2773000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fa3c256f000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fa3c2363000)
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fa3c2148000)
libgssapi.so.3 => /usr/lib/x86_64-linux-gnu/libgssapi.so.3 (0x00007fa3c1f0a000)
libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007fa3c1cf5000)
libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007fa3c1ab3000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fa3c18ae000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fa3c16a9000)
libheimntlm.so.0 => /usr/lib/x86_64-linux-gnu/libheimntlm.so.0 (0x00007fa3c14a0000)
libkrb5.so.26 => /usr/lib/x86_64-linux-gnu/libkrb5.so.26 (0x00007fa3c1217000)
libasn1.so.8 => /usr/lib/x86_64-linux-gnu/libasn1.so.8 (0x00007fa3c0f76000)
libhcrypto.so.4 => /usr/lib/x86_64-linux-gnu/libhcrypto.so.4 (0x00007fa3c0d43000)
libroken.so.18 => /usr/lib/x86_64-linux-gnu/libroken.so.18 (0x00007fa3c0b2d000)
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fa3c0925000)
libwind.so.0 => /usr/lib/x86_64-linux-gnu/libwind.so.0 (0x00007fa3c06fb000)
libheimbase.so.1 => /usr/lib/x86_64-linux-gnu/libheimbase.so.1 (0x00007fa3c04ed000)
libhx509.so.5 => /usr/lib/x86_64-linux-gnu/libhx509.so.5 (0x00007fa3c02a4000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fa3bffea000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fa3bfdb1000)
====== Comandos relacionados con DNS ======
* Encontrar servidores "authoritative" para un dominio:
dig +short NS stackoverflow.com
o:
dig +nssearch stackoverflow.com
====== Generar una cadena de texto con el contenido de un archivo ======
Encriptar:
cat .ssh/id_rsa| base64 -w 0
Desencriptar:
cat .ssh/id_rsa| base64 -w 0 | base64 -d