Básico
- cd {dir} Moverse a directorio
- cd .. Moverse a directorio anterior
- cd Moverse al home
- ls [-lah] Mostrar archivos en directorio actual
- mkdir {nombredir} Crear carpeta
- rm {archivo} Borrar {archivo}
- rm -r {dir} Borrar carpeta {dir}
- cp {archivo} {archivo2} Copiar {archivo} a {archivo2}
- cp -r {dir} {dir2} Copiar {dir} a {dir2}
- mv {archivo/dir} {archivo2/dir} Mover archivo o carpeta
- mv {archivo/dir} {archivo2/dir} Renombrar archivo o carpeta
- ln -s {archivo} {enlace} Crear enlace simbólico de {archivo} (Acceso directo)
- touch {archivo} Crear archivo
- cat {archivo} Ver archivo
- less {archivo} Ver archivo cómodamente
- {comando} | less Ver salida de comando cómodamente
- nano {archivo} Editar archivo
- sudo {comando} Ejecutar {comando} como administrador
Utilidades
- cal [-3] [-y] Calendario
- date Fecha y Hora
- man {comando} Ver el manual del {comando}
- man -k {texto} Buscar {texto} en el manual
- du -ah Uso de disco por archivo en directorio actual
- ls -lSrh Archivos más grandes en directorio actual
- du -kx | egrep -v "\./.+/" | sort -n Carpetas más grandes en directorio actual
- find -name {texto} Buscar {texto} en el nombre de los archivos, no usar extensión
Sistema
- uname -a Información de Linux
- uname -r Información del Kernel
- uptime Tiempo desde inicio de Linux
- last Historial de sesión
- dmesg Info de hardware y booteo, usar con less
- lscpu Info de CPU
- cat /proc/meminfo Info de memoria
- lshw Info de hardware
- lspci Info de dispositivos PCI
- lsusb Info de USB
- free -m RAM libre
- sudo lsblk [-o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL] Mostrar particiones
- blkid Mostrar particiones
- df -h Mostrar espacio libre
- mount [-t {sistema de ficheros}] {disp} {dir} Montar {disp} en el punto de montaje {dir} Algunos sistemas de ficheros comunes son ext4, ntfs o vfat para FAT32
- mount -o loop {iso} {dir} Montar un ISO en el punto de montaje {dir}
- umount {dir/disp} Desmontar
- halt Apagar
Paquetes y programas
Para distribuciones basadas en Debian, en otras distribuciones pueden haber diferencias- aptitude install {paquete} Instalar {paquete}. En algunas distribuciones se debe reemplazar aptitude por yum, pacman, etc. Normalmente los programas vienen en paquetes del mismo nombre
- aptitude remove {paquete} Eliminar {paquete}
- aptitude search {texto} Buscar paquetes en los repositorios
- aptitude update Actualizar repositorios
- aptitude upgrade Actualizar paquetes
- dpkg -i {archivo.deb} Instalar paquetes con extensión .deb
- dpkg -r {paquete} Eliminar paquete .deb
- dpkg -l Mostrar paquetes instalados
Compilar
Seguir instrucciones del readme, si no las hay:- ./configure
- make
- make install
Compresión
- tar -zcvf {archivo.tar.gz} {archivos/carpeta} Comprimir en TAR.GZ
- tar -ztvf {archivo.tar.gz} Mostrar contenidos de un TAR.GZ
- tar -zxvf {archivo.tar.gz} Descomprimir un TAR.GZ
- tar -cvf {archivo.tar} {archivos/carpeta} Comprimir en TAR
- tar -tvf {archivo.tar} Mostrar contenidos de un TAR
- tar -xvf {archivo.tar} Descomprimir un TAR
- zip {archivo.zip} {archivos/carpeta} Comprimir en ZIP
- unzip -l {archivo.zip} Mostrar contenidos de un ZIP
- unzip {archivo.zip} Descomprimir un ZIP
- rar a {archivo.rar} {archivos/carpeta} Comprimir en RAR
- rar l {archivo.rar} Mostrar contenidos de un RAR
- rar x {archivo.rar} Descomprimir un RAR
- 7z a {archivo.7z} {archivos/carpeta} Comprimir en 7z
- 7z l {archivo.7z} Mostrar contenidos de un 7z
- 7z x {archivo.7z} Descomprimir un 7z
Grep
- grep {texto} {archivo} Buscar {texto} en {archivo}
- grep -r {texto} {a} Buscar {texto} en {dir} incluyendo subcarpetas
- {comando} | grep {texto} Buscar {texto} en la salida de {comando}
Usuarios
- adduser {nombre} Agregar {usuario}
- deluser {usuario} Borrar {usuario}
- passwd {usuario} Cambiar contraseña del {usuario}
- usermod {usuario} Cambiar opciones del {usuario}, ver man usermod
- useradd {nombre} Agregar {usuario}, se recomienda adduser en su lugar
- userdel {usuario} Borrar {usuario}, se recomienda deluser en su lugar
Procesos
- top Mostrar procesos
- ps -A Mostrar procesos
- kill {num} Matar proceso de numero {num}
- killall {proceso} Matar a todos los procesos llamados {proceso}
- lsof Lista de archivos abiertos por procesos. Usar con grep
Permisos
- chmod {permisos} {archivo} Cambiar los permisos de un archivo
lectura (r) = 4 escritura (w) = 2 ejecutable (x) = 1
permiso de usuario (u) = r+w+x (ej: r+w+x = 7) permiso de grupo (g) = r+w+x (ej: r+x = 5) permiso de otros (o) = r+w+x (ej: x = 1)
{permisos} = ugo (ej: 751)
Red
{disp} = Dispositivo de red (wlan0, eth0, etc.)- wget {URL} Descargar el archivo presente en esa dirección. Será descargado en la carpeta actual, usar cd
- wget -c {URL} Continuar una descarga interrumpida, ubicarse en la carpeta correcta
- ifconfig [-a] Info sobre red e IPs. Leer man ifconfig para configuraciones de red
- ifconfig [-a] Info sobre red e IPs. Leer man iwconfig para configuraciones de red inalámbrica
- ping {IP} Probar conexión con {IP}
- iwconfig {disp} rate {velocidad} Configurar velocidad de {disp}. {velocidad} medida en bits, agregar auto para permitir velocidades menores (ej: 2M auto). Leer man iwconfig
- iwconfig {disp} frag {tamaño} Configurar {tamaño} de los paquetes (ej: 512). Leer man iwconfig
- iwconfig {disp} rts 1 Activar RTS. Leer man iwconfig
- iwconfig {disp} retry {numero} Configurar {numero} máximo de reintentos. Leer man iwconfig
- tcpdump -i {disp} ['port 80'] Flujo de paquetes en {disp} (ej: eth0; wlan0)
- tar -cz {carpeta/archivo} | nc -q 10 -l -p {puerto} Enviar archivos por red, espera para enviarle los archivos a una conexión entrante. Recursa carpetas por defecto. Como alternativa ver scp
- nc -w 10 {ip} {puerto} | tar -xz Recibir los archivos que envía el comando anterior, los deja en la carpeta actual
Como configurar una red LAN con DHCP:
Asumiendo eth0 como interfaz
-
Editar /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
- sudo ifconfig eth0 up
- sudo /etc/init.d/networking restart
Como configurar una red LAN de forma estatica:
Asumiendo eth0 como interfaz y dando IPs de ejemplo
-
Editar /etc/network/interfaces
auto eth0 iface eth0 inet static address 192.168.0.101 gateway 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255
-
Editar /etc/resolv.conf
nameserver 208.67.222.222 nameserver 208.67.220.220
IPs de OpenDNS como ejemplo - sudo ifconfig eth0 up
- sudo /etc/init.d/networking restart
SSH
- ssh -p {puerto} {usuario}@{ip} [comando] Conectarse, si no se escribe [comando] se comienza a controlar la PC remota
- exit Terminar de controlar PC remota
- scp -P {puerto} {usuario}@{ip}:{archivo} {archivodestino} Copiar {archivo} remoto a {archivodestino}
- scp -P {puerto} {archivo} {usuario}@{ip}:{archivodestino} Copiar {archivo} a {archivodestino} en PC remota
- ssh-keygen [-t rsa -b 4096 -C {mail}] Generar claves para inicio de sesion, despues hay que poner la clave publica en el servidor en ~/.ssh/authorized_keys
En scp, con el argumento -r se pueden copiar carpetas. Si no se puede hacer scp quitar mensaje de bienvenida (en .bashrc) en PC remota
Git
Asumiendo origin como repositorio remoto y master como rama, porque es lo que se usa casi siempre
Las {URL} para SSH se escriben ssh://{usuario}@{ip}:{puerto}/{repositorio} En donde {repositorio} es una dirección como /~/repo.git
- git clone {URL} Descarga y un repositorio en el directorio actual
- git init Crea un repositorio (ubicarse dentro de la carpeta con cd)
- git status Ver estado del repositorio
- git add . Agregar todos los archivos modificados
- git commit [-a] [-m "{mensaje}"] Guardar cambios con un {mensaje} opcional. Con -a ademas agrega todos los archivos modificados al commit
- git log Ver historial
- git checkout -- {archivo/carpeta} Restaurar archivo a como estaba en el commit anterior, cuidado, los cambios se pierden
- git remote -v Ver URLs de los remotos
- git remote set-url origin {URL} Cambiar dirección del remoto
Con el argumento -r se pueden copiar carpetas. Si no se puede hacer scp quitar mensaje de bienvenida (en .bashrc) en PC remota