Comandos Linux Flashcards
Añadir un usuario (Pepe) a un grupo (Marketing)
Dos formas:
1ª usermod -a -G Marketing Pepe
2ª gpassword -a Pepe Marketing
Crear un nuevo usuario (Pepe)
Crear un nuevo grupo (Marketing9
useradd Pepe
groupadd Marketing
Borrar usuario Pepe del grupo Marketing
gpassword -d Pepe Marketing
Hacer login con otro usuario (Daniel)
su daniel
Ejecutar comando con privilegios de root
sudo
# sudo -u carlos comando (ejecuta comando como si fuera “carlos”)
Para ello tienes que estar el archivo sudoers donde salen los permitidos y sus alcances.
Para editar ese archivo se usa el comando visudo
Para saber con qué usuario estás loggeado
whoami
Para saber quién es + el grupo en el que estás (UID, GID y grupos)
id
id usu01
Editar el texto de un fichero
vi o vim
Activar/desactivar permisos de user owner, group owner y otros
chmod
u/g/o + permiso: añade permisos
u/g/o = permiso: solo esos permisos
u/g/o - permiso: quita esos permisos
chamos a (es de all, como poner u,g y o)
Cambiar propietario de in fichero/directorio
chown
> -R (Recursivo)
Listado de variables de entorno
env
Ver el contenido de una variable de entorno
echo $”variable de entorno”
Convertir una variable en entorno
export
Datos completos de un i-nodo
stat “archivo”
Modificar fecha de acceso de un fichero
Modificar fecha de modificación de un fichero
touch -a fichero
touch - m fichero
Dar permisos (acl’s) a determinadas personas dentro de un grupo
setfacl -x/-b/-m u:juan:rw
con -x borra un permiso en concreto
con -b borra todos los permisos
con -m añade permisos
Ver qué permisos (acl’s) hay en un fichero
getfacl archivo
Añadir sticky bit (t)
chmod +t
Si sale en MAY no tapa el permiso
Añadir Set UID (user owner)
chmod u+s
Si sale en MAY no tapa el permiso
Añadir Set GID (group owner)
chmod g +s
Si sale en MAY NO tapa el permiso
Bit UID
Bit GID
Bit Sticky bit
4
2
1
Si quisieras otorgar permisos de lectura y escritura al usuario propietario y al grupo propietario en el fichero4.txt como lo harías
Tradicional: chmod ug=rw fichero4.txt
Con números: chmod 660 fichero4.txt
Si quisieras otorgar permisos de lectura y escritura al usuario propietario y al grupo propietario en el fichero4.txt y activar el set UID y el sticky bit
chmod 5660 fichero4.txt
Soft link de un fichero
Soft link de un directorio
ln -s fichero.txt enlace
ln -d fichero.txt enlace
Hard link de un fichero
ln fichero original fichero copia
Con stat fichero puedes ver cuantos hardlinks hay en un fichero
Ficheros Debian
Extensión .deb
Ficheros Red Hat
Extensión .rpm
Comandos online y offline de Debian
Online: apt-get o apt
Offline: dpkg
Comandos online y offline de Red Hat
Online: dnf o yum
Offline: rpm
Info del paquete debian online
apt-cache show paquete
Actualiza el índice de paquetes usando los repositorios debian online
apt-get update
Actualiza los paquetes instalados en el sistema debian online
apt-get upgrade
Instala el paquete vsftpd online debian
apt-get install vsftpd
Elimina el paquete debian online
apt-get remove paquete
Elimina el paquete y ficheros de configuración debian online
apt-get purge paquete
Instalación offline debian
dpkg -i paquete
Lista paquetes instalados debian offline
dpkg -l
Eliminar/purgar paquete debian offline
dpkg -r paquete (con -p hace un purge)
Instala el paquete firefox Red Hat online
yum install firefox
Elimina el paquete firefox Red Hat online
yum remove firefox
Actualizar paquete firefox Red Hat online
yum update firefox
Lista paquetes instalados Red Hat online
yum list installed
instalación offline verbose Red Hat
rpm -ivh paquete
Hacer un upgrade Red Hat offline
rpm -Uvh paquete
Eliminar un paquete Red Hat offline
rpm -evv paquete
Empaquetar ficheros en un solo archivo y opcionalmente comprimirlo
tar
La c crea un fichero empaquetado
La J (xz) y la z (gzip) comprimen
La x desempaqueta/descomprime
La t lista el contenido del archivo empaquetado/comprimido
La f nombra
La r actualiza o añade un fichero en un empaquetado concreto
Copia/backup ficheros usando algoritmo delta
rsync
Con -z comprime
Con -v verbose
Localizar ficheros/directorios que cumplan una serie de criterios
FIND
-type d : localizar directorios
-name: que el nombre del directorio/fichero siga un determinado patrón
-perm: que tenga unos permisos.
-user: que sea de un cierto propietario.
-atime: que haya accedido antes/después de una fecha
-size: los que tengan más/menos de determinado tamaño
COMANDO HEAD/TAIL
Con head coges los primeros mensajes. Con tail los últimos mensajes.
Ejemplo: tail -n100 error.log. Te saca las última cien líneas.
Si pones la f de follow: tail -10f error.log te saca las 10 últimas líneas de forma actualizada
COMANDO MORE
Información paginada (en vez de que te salga todo de golpe va poco a poco)
COMANDO GREP
Te filtra y te pone las líneas donde salga la palabra que buscas.
COMANDO CUT
Corta en vertical
COMANDO WC (Word count)
Cuenta y te indica el nº de:
- Líneas: wc -l
- Palabras: wc -w
- Bytes: wc-c
Redirecciones
STDIN 0 = entrada estándar
STDOUT 1 = salida estándar
STDERR 2 = salida de error
find/ -size +10G 1>ficheros-grandes 2>errores.text
De esta forma los errores (2) irían al fichero llamado errores.txt y los normales (1) a
ficheros_grandes.txt
Si quisiese mandar las dos salidas (la estándar STDOUT 1 y la de error STDERR 2) al mismo fichero sería con & . No sale nada en la pantalla de la consola
find/ -size +10G &>salida.txt
El comando tee sirve para redirigir a ficheros de entrada estándar(STDIN 0) y salida estándar (STDOUT 1) a la vez, aunque también te sale en la pantalla de la consola
Crear particiones
fdisk
>fdisk/dev/sdb para discos SATA o SCSI (seriales)
>fdisk/dev/hdb para discos P(ATA) o IDE (paralelos)
> Si son particiones GPT sería con gdisk y parted
>Con lsblk sale un listado de todas las particiones/discos
> Con hdparm se obtiene info concreta de cada partición (cilindros, pistas, etc)
Particiones importantes de Linux
8e –> Linux LVM
82 –> Linux swap (paginacion)
83 –> Linux (ext4 por ej)
fd –> Linux raid
Crear volúmenes RAID
MDADM
mdadm -Cv /dev/md0 -l0 -n2 -c128 /dev/sdb1 /dev/sdc1
-C (crear el RAID de discos )
-lx (x es el nivel de RAID deseado)
-ny (y es el numero de discos empleados)
-cz (z es tamaño del chunk)
Montajes
mount -t
>etc/fstab: montajes permanentes
>etc/mtab: montajes actuales
>con cat /proc/filesystems podemos ver los sistemas de ficheros soportados
>el - t es opcional, especifica el tipo de archivo
Mostrar espacio libre
Mostrar espacio ocupado
df
du
Reparar sistemas de ficheros
fsck (más genérico)
e2fsck específico de ext2/ext3 y ext4
Ej: e2fsck /dev/vdb1
Formatear dispositivos con sistemas de ficheros)
mkfs -t
mkfs -t ext4 /dev/sdb1
Reducir/ampliar un sistema de ficheros
resize2fs
resize2fs /dev/sdb1 50g
Gestión de volúmenes lógicos o gestión de almacenamiento flexible/virtual
pvcreate / pvdisplay / pvmove
vgcreate / vgdisplay / vgextend / vgreduce
lvcreate / lvdisplay /lvextend / lvreduce
lvcreate -L: Define el tamaño
vgcreate -s: Establece el tamaño
vgreduce -v: Muestra información detallada
Otra forma de reducir el volumen lógico (lv) valdría con resize2fs
¿Qué es un PID? ¿Y un PPID?
PID (Process ID)> Identificador de un proceso
PPID (Parent Process ID)>identificador de un proceso padre
Listar los procesos actuales del sistema
ps
>ps -eF muestra todos los procesos y formato largo extendido
>ps -ELf muestra información sobre threads
>ps -p muestra un proceso concreto
-u –> UID/user (muestra los procesos del usuario efectivo)
-U –> UID/user (muestra los procesos del usuario real)
-g –> GID/grupo (muestra los procesos del grupo efectivo)
-G –> GID/grupo (muestra los procesos del grupo real)
Mostrar los procesos actuales actualizados de forma interactiva y un sumario de uso de memoria, cpu, tareas, hora actual, uptime y sesiones de usuario
top (ps no es interactivo)
Crear un proceso nuevo y modificar su prioridad de planificación
Modificar la planificación de un proceso ya existente
nice
renice
Planificación de procesos en un momento concreto únicamente
at
at now + 1 minute -f script.sh
atq (ver los trabajos encolados)
atrm (eliminar un trabajo encolado)
Planificador de procesos recurrente
crontab
crontab -e (para editar el fichero con la planificación)
crontab -l (lista el crontab actual)
crontab -r (borrar el crontab actual)
>El fichero usado es etc/crontab
>El demonio que lo lee se llama cron
Gestión de servicios
SysVinit (antiguo, 1ª el servicio y después la acción): service dummy start/stop/restart/reload/status
Systemd (actual. 1º la acción y después el servicio): systemctl start/restart/stop/reload dummys
Mostrar mensajes de la consola cuando arranca el S.O/mensajes de diagnóstico
dmesg
dmesg -k muestra mensajes del kernel
Apagar la máquina
poweroff
shutdown now
shutdown -P now
halt -p
Parar la máquina
shutdown -H now
halt
Reiniciar la máquina
poweroff –reboot
halt –reboot
Mostrar información de usuario conectados
who
who -q (muestra los login y el numero total de usuarios logados)
NOTA: el comando “users” muestra solo el login de los usuarios conectados
NOTA: el comando “w” muestra los usuarios conectados y que están haciendo
Mostrar información del sistema
uname -a (muestra toda la información) =hostnamectl
uname
# uname -a (muestra toda la información)
# uname -s (nombre del kernel)
# uname -v (versión del kernel)
# uname -o (sistema operativo)
Cortafuegos y gestión reglas firewall
iptables -L (lista reglas)
iptables
# iptables -L (lista reglas)
# iptables -A (añade una regla)
# iptables -D (elimina una regla en concreto)
# iptables -F (elimina todas las reglas)
Ej: Bloquear tráfico saliente del puerto 80
sudo iptables -A OUTPUT -p tcp –dport 80 -j DROP
Comando ARP (obsoleto)
Manipulación tabla vecinos ARP - direcciones MAC
#arp -a (muestra todas las entradas) ¡Actualmente se usa ipneigh! también se usa route -n y ip r
#arp -d dirección ip (borra una entrada)
Configuración de interfaces de red
ip/ifconfig (obsoleto)
Mostrar interfaces de red: ifconfig -a/ ip addr show/ip a s y netsat -ie
Asignar una Ip: ifconfig eth0 nªIP/ ip addr add nºIP
Eliminar una ip: ip addr del nºIP
Mostrar tabla de encaminamiento: ip route show = netstat -nr
Añadir una ruta estática: ip route add nºIP
Añadir gateway por defecto: ip route default
Mostrar información sobre conexiones, encaminamiento, etc
ss/netstat (obsoleto)
>Con lsof -i obtenemos información muy similar
# netstat -nr (muestra tabla de encaminamiento, como ip route show)
# netstat -at (solo conexiones TCP). Con -au serían UDP
# netstat -l (solo conexiones en estado LISTEN)
# netstat -ltnp (muestra el PID/ProgramName)
# netstat -ltne (muestra el UID)
# netstat -ie (muestra los interfaces de red)
# ss-at(d:port = :22 por sport =22) (permite filtros de puertos)
Consultas DNS
dig/nslookup/host
Consulta de registros A (IPv4)
dig yahoo.com
#nslookup yahoo.com
Consulta de registros AAAA (IPv6)
dig yahoo.com
Consulta de registros MX (servidores de correo)
dig yahoo.com MX
# nslookup -query=mx yahoo.com
# nslookup -type=mx yahoo.com 8.8.8.8: usa el DNS de Google (8.8.8.8).
Checkeo de host con ICMP en Ipv4 y IPv6
Ping/ping6
Capturar y analizar tráfico de red
tcpdump
# tcpdump -i eth0 (capturar trafico del interface eth0)
# tcpdump -i eth0 tcp (captura trafico tcp)
# tcpdump -i eth0 port 22 (captura trafico del puerto 22)
# tcpdump -D (mostrar interfaces disponibles)
Descubrimiento de ruta entre dos IP´s
traceroute
> -g direccion_ip (especificar el gateway de salida)
> -i direccion_ip (especificar el interface de salida)
¿Qué hace el comando hostname?
indicar el nombre de la máquina Linux que está conectada
¿Qué se encuentra en el fichero etc/hosts allow?
las máquinas que pueden tener acceso a filtros por IP
¿Qué se encuentra en el fichero etc/hosts?
las resoluciones de nombres locales
¿Qué se encuentra en el fichero etc/host.conf? ¿Y en etc/nsswitch?
El orden de resolución de nombres de un dominio
Configurar parámetros del kernel en tiempo de ejecución
sysctl -a (ver una lista completas de los parametros del kernel)
sysctl
NOTA: si queremos que el cambio sea permanente hay que editar el fichero /etc/sysctl.conf
Mostrar información del procesador: arquitectura, cores, virtualización, cache L1,L2, etc
lscpu
equivalente a # cat /proc/cpuinfo
Muestra los dispositivos conectados al USB o al PCI
lsusb / lspci
Muestra información de la memoria RAM
free
Obtiene la información de # cat /proc/meminfo
free -h (formato legible)
# free -b/m/g/k (información en bytes/kibi/mebi/gibibyte –> base 2)
Escanear redes wifi
iw wlp2s0 scan (escanea la redes wifi)
Mostrar intefaces wifi
iw dev
Descargar un fichero a partir de una URL o descargar un fichero a partir de un FTP
wget
Borrar grupo Marketing
Groupdel Marketing
cat
Muestra contenido de un archivo: cat fichero.txt
Concatena contenidos de varios archivos en uno nuevo: cat archivo1.txt archivo2.txt >combinaod.txt
Crear un directorio
mkdir nombredirectorio