Usa la Terminal como Tux Ninja

usa la terminal como tux ninja

Un clásico de cualquier sysadmin es tener un ayuda memoria de los comandos más utilizados. Con la practica se hace al maestro, pero mientras tanto tener a donde recurrir por ideas es siempre bienvenido.

En los comandos vas a encontrar un # que es un comentario o sea que eso no va!!! por las dudassssss cheeeeeeeeee. Además los comandos más comunes como mkdir o cd no los voy a poner a no ser que requiera algun parametro mas complejito para alguna tarea.

¿Cual es la ip de nuestra maquina?

ip a
ifconfig #para esto tenes que tener instalado net-tools con sudo apt install net-tools

¿Cual es mi ip publica?

curl ifconfig.me

¿Como ver las rutas asociadas a mi maquina?

ip r

¿Como ver puertos abiertos o que estan escuchando?

ss -tuln
netstat -tuln

¿Como crear una traza desde nuestro host a una web fuera de la red?

traceroute web #donde web es el dominio de la misma ejemplo luiszambrana.ar

Trabajar con los DNS

dig dominio
nslookup dominio

¿Que puertos abiertos tiene un host?

nmap dominio #donde dominio puede ser una web o un equipo de nuestra red

¿En donde estoy parado en la terminal?

pwd

Borrar una carpeta

rm -r carpeta # si la carpeta tiene archivos u otras carpetas
rmdir carpeta # si la carpeta esta vacia

¿Que tipo de archivo es?

file nombredearchivo.extension #n os indica que tipo de archivo es. SI es un enlace simbolico (link) tambien nos va a decir

Comprimir y Descomprimir Archivos desde Terminal

TAR

Comprimir:

tar -cvf archivo.tar carpeta_o_archivo

Descomprimir:

tar -xvf archivo.tar

TAR.GZ (tar comprimido con gzip)

Comprimir:

tar -czvf archivo.tar.gz carpeta_o_archivo

Descomprimir:

tar -xzvf archivo.tar.gz

ZIP

Comprimir:

zip -r archivo.zip carpeta_o_archivo

Descomprimir:

unzip archivo.zip

RAR

En este caso debes tener instalado las librerias necesarias:

sudo apt update
sudo apt install rar unrar

Comprimir:

rar a archivo.rar carpeta_o_archivo

Descomprimir:

unrar x archivo.rar

¿Como puedo ver espacios en discos montados?

df -h

Ver permisos de carpeta o archivos

ls -la #podemos ver archivos ocultos, listar permisos, saber quien es el dueño y a que grupo tambien pertenece.

Cambiar dueño a archivo:

chown usuario:grupo archivo

Cambiar permisos de archivos o carpetas

chmod 755 archivo #dependiendo el numero es como va a funcionar el permiso
chmod -x archivo #da permisos para hacerlo ejecutable

Crear una copio sincronizada de archivos

rsync -avz origen destino

Copiar archivos remotos:

scp usuario@host:/ruta /destino

Buscar archivos en el sistema

find /ruta -type f -name "*.log"

¿Hace cuanto esta encendida esta maquina?

uptime

Información del Sistema

uname -a

En este caso vamos a obtener el tipo de sistema, el nombre del equipo, la version del kernel, el numero de compilación, tipo de arquitectura entre otros.

¿Cuanta memoria tengo y cuanta libre?

free -h

¿Como ver información de mi equipo?

hostnamectl #brinda info del nombre de equipo arquitectura hardware sistema operativo y kernel

Ver estado de un servicio

systemctl status servicio #donde servicio es el nombre del servicio corriendo en ese servidor

Ver procesos activos

ps aux

Monitorear en tiempo real el uso de cpu ram etc

top
htop # generalmetne hay que instalarlo ya que no viene. Se instala con sudo apt install htop

Ver los logs de systemd

journalctl -xe

¿Como puedo ver los usuarios conectados?

who
w 
last

¿Puedo agregar un usuario a un grupo determinado?

usermod -aG grupo usuario    #por ejemplo podremos agregar nuestro usuario al grupo de docker para no tener que poner sudo siempre

¿A que grupo pertenece un usuario?

groups
groups usuario

¿Puedo cambiar mi contraseña?

passwd usuario

Uso del comando HEAD:

Permite ver las primeras 10 lineas (por defecto) de algo (un archivo o lo que le pasemos)

head archivo.log                     # Muestra las primeras 10 líneas
head -n 20 archivo.log               # Muestra las primeras 20 líneas
head -c 100 archivo.log              # Muestra los primeros 100 caracteres

Uso del comando TAIL:

Ver las últimas líneas de un archivo (por defecto, 10). Al igual que HEAD le podemos pasar info.

tail archivo.log                     # Últimas 10 líneas
tail -n 50 archivo.log               # Últimas 50 líneas
tail -f /var/log/syslog              # Ver logs en tiempo real (modo seguimiento)

Uso del comando GREP:

Nos permite buscar texto dentro de archivos. Como en linux todas las configuraciones son archivos el comando grep es muy utilizado para ver ip, errores, detalles dentro de archivos:

grep "error" /var/log/syslog         # Buscar líneas con "error"
grep -i "fail" archivo.log           # Buscar "fail" sin importar mayúsculas
grep -r "nginx" /etc                 # Buscar recursivamente en directorios
grep -v "DEBUG" archivo.log          # Excluir líneas que contengan "DEBUG"
grep "^root" /etc/passwd             # Líneas que empiezan con "root"

Uso del comando SED:

Es un editor muy capaz que nos permite con solo un comando modificar, reemplazar, editar y borrar texto en linea.

sed 's/error/ERROR/' archivo.txt     # Reemplaza la primera ocurrencia de "error" por "ERROR" en cada línea
sed 's/error/ERROR/g' archivo.txt    # Reemplaza todas las ocurrencias por línea
sed -i 's/http/https/g' archivo.txt  # Lo hace en el archivo directamente (-i = in-place)
sed '/DEBUG/d' archivo.txt           # Elimina las líneas que contienen "DEBUG"
sed '1,3d' archivo.txt               # Borra las líneas de la 1 a la 3

Uso del comando AWK:

Nos permite procesar texto por columnas. Muy poderoso para análisis de logs, stats, archivos CSV, etc.

awk '{print $1}' archivo.txt         # Muestra la primera columna de cada línea
awk '{print $1, $3}' archivo.txt     # Muestra columnas 1 y 3
awk -F: '{print $1}' /etc/passwd     # Usa ":" como separador, muestra los nombres de usuario
awk '$3 > 1000' /etc/passwd          # Muestra líneas donde el tercer campo (UID) sea mayor a 1000
awk '{s+=$2} END {print s}' archivo  # Suma todos los valores de la segunda columna

Hasta que llegamos con lo que yo creo que son las cosas más utiles en principio (tenes que aprender de firewall y otras cosas pero será mas adelante). Para terminar te dejo algunos ejemplos practicos para que veas estos comandos en el uso del mundo real:

Uso del comando DPKG

Nos sirve para instalar/desinstalar paquetes deb en distribuciones basadas en debian/ubuntu

sudo dpkg -i archivo.deb #instala el paquete archivo.deb
sudo dpkg -l (lista todos los paquetes que se instalaron) convinado con >> archivo.log puedo hacer que el resultado vaya a parar a un archivo.
sudo dpkg -r archivo.deb # desinstala el paquete en cuestion
sudo dpkg -e archivo.deb # desempaqueta pero no instala

Ejercicio 0: Este es uno que uso mucho y es encontrar los 30 archivos de imagenes mas grande en todo el sistema lo uso para buscar fotos, videos, iso y cosas que por ahi no deberian estar en estos lugares (aunque a veces si)

find / -type f ( -iname ".iso" -o -iname ".jpg" -o -iname ".mp4" -o -iname ".mkv" ) -exec du -h {} + 2>/dev/null | sort -hr | head -n 30

Ejercicio 1: Ver los primeros logs del sistema

head -n 20 /var/log/syslog

Ejercicio 2: Ver logs en tiempo real de SSH

tail -f /var/log/auth.log | grep sshd

Ejercicio 3: Contar líneas con errores críticos

grep -c "CRITICAL" /var/log/syslog

Ejercicio 4: Eliminar líneas que contienen DEBUG

sed '/DEBUG/d' /var/log/aplicacion.log > limpio.log

Ejercicio 5: Reemplazar “http” por “https” en un archivo de configuración

sed -i 's/http/https/g' /etc/nginx/sites-available/default

Ejercicio 6: Mostrar usuarios del sistema

awk -F: '{print $1}' /etc/passwd

Ejercicio 7: Mostrar procesos de Apache o Nginx

ps aux | grep -E 'apache|nginx' | grep -v grep

Ejercicio 8: Mostrar los 10 procesos que más CPU usan

ps aux --sort=-%cpu | head -n 11

Ejercicio 9: Sumar todos los valores de una columna (por ejemplo tamaño en MB)

cat disco.txt | awk '{s+=$2} END {print "Total:", s, "MB"}'

Ejercicio 10: Ver registros entre líneas 100 y 150

sed -n '100,150p' /var/log/syslog

Seguramente vamos a estar tirando nuevas entradas para seguir jugando al sysadmin y poner en practica todo lo que vamos aprendiendo!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *