Skip to content

CheatSheet con los comandos básicos de Linux, un ejemplo de uso y descripción. Incluye otros comandos para administrar el sistema, gestión de usuarios y permisos, procesos, gestores de paquetes y más. [En construcción].

Notifications You must be signed in to change notification settings

JoseZurita1991/Linux-CheatSheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Linux-CheatSheet


Estructura de directorios:

Path Contenido
/ Raíz del sistema.
/bin Binarios del usuario.
/boot Archivos para el arranque del sistema.
/dev Dispositivos de almacenamiento conectados.
/etc Archivos de configuración de los paquetes.
/home Directorio personal del usuario.
/lib Librerías esenciales y módulos del kernel.
/media Punto de montaje para almacenamiento externo.
/mnt Punto de montaje para almacenamiento interno.
/proc Archivos y procesos del sistema actuales.
/root Similar a /home del usuario root.
/sbin Binarios del usuario root.
/srv Directorio para servicios del sistema (Por ej: FTP)
/tmp Almacenamiento de archivos temporales.
/usr Archivos de solo lectura de las aplicaciones.
/var Archivos de info del sistema (Por ej: Logs)

Comandos básicos de Linux:

Comando Ejemplo Descripción
ls ls /DIRECTORIO Listar los archivos y directorios.
  ls -la Listar archivos ocultos.
-l Formato de lista.
-r Orden inverso.
-R Recursivo.
-S Ordenar por tamaño.
cd cd /DIRECTORIO Change directory. Cambiar de directorio.
  cd .. Volver un directorio hacía atrás.
  cd Directorio home del usuario.
pwd pwd Ver directorio actual de trabajo.
mkdir mkdir CARPETA_1 Crear un directorio.
rm rm ARCHIVO.txt Eliminar archivos o directorios.
  rm -rf /DIRECTORIO Elimina la carpeta con todo el contenido.
cp cp ARCHIVO.txt /DIRECTORIO_DESTINO Permite copiar un archivo.
mv mv ARCHIVO.txt /home/video.mkv Mover o cambiar el nombre de un archivo.
touch touch DOCUMENTO.txt Crea un archivo vacío o actualiza fecha de acceso.
cat cat DOCUMENTO.txt Muestra contenido de un archivo.
grep grep "patrón" ARCHIVO.txt Busca patrones de texto en archivos.
head head ARCHIVO Muestra las primeras 10 líneas de un archivo.
head -n 5 ARCHIVO Muestras las primeras 5 líneas.
tail tail ARCHIVO Muestra las últimas 10 líneas de un archivo.
tail -n 5 ARCHIVO Muestra las últimas 5 líneas.
wc wc ARCHIVO.txt Contar palabras, líneas, caracteres y más.
wc -l ARCHIVO.txt Contar líneas.
wc -w ARCHIVO.txt Contar palabras.
wc -c ARCHIVO.txt Contar caracteres.
sort sort ARCHIVO Ordena.
uniq uniq ARCHIVO Detectar líneas duplicadas.
uniq -d ARCHIVO Muestra solo las líneas duplicadas.
diff diff ARCHIVO1 ARCHIVO2 Compara dos archivos.
diff -q ARCHIVO1 ARCHIVO2 Ver solamente si difieren.
diff -u ARCHIVO1 ARCHIVO2 Ver las diferencias.
awk awk ‘{pint $1}’ Extraer la primera columna.
sed sed 's/gato/perro/g' Cambiar palabras.
tr tr ‘.’ ‘-’ Sustituir el punto por un guión.
> ls -l /usr/bin 2> /dev/null Redirigir stderr al /dev/null

Gestión de Usuarios, Permisos y Propietarios:

Comando Ejemplo Descripción
useradd useradd -m -s /bin/bash USUARIO Añadir un usuario, crear el home y asignarle un terminal.
passwd passwd USUARIO Cambiar contraseña del usuario.
usermod usermod -aG GRUPO USUARIO Añadir al usuario Y al grupo X.
userdel userdel -r USUARIO Eliminar un usuario y su carpeta personal.
gpasswd gpasswd -d USUARIO GRUPO Eliminar a un usuario de un grupo
chmod chmod 755 ARCHIVO Cambia los permisos de archivos o directorios.
chmod -x ARCHIVO Asigna permiso de ejecución al archivo.
Lectura: 4  | r
Escritura: 2 | w
Ejecución: 1 | x
chown chown USUARIO:GRUPO ARCHIVO Cambia el propietario de archivos o directorios.

Monitoreo y Gestión de Procesos:

Comando Ejemplo Descripción
ps ps aux Muestra información sobre los procesos en ejecución.
top top Muestra información en tiempo real sobre el uso de recursos.
jobs    
bg    
fg    
kill    
killall    

Gestión de Espacio en Disco:

Comando Ejemplo Descripción
fdisk fdisk -l Listar los discos físicos.
df df -h Muestra el espacio en disco utilizado y disponible en particiones.
du du -sh DIRECTORIO Muestra el uso del espacio en disco de directorios y archivos.

Compresión y Archivos:

Comando Ejemplo Descripción
tar tar -czvf archivo.tar.gz DIRECTORIO Crea o extrae archivos comprimidos en formato tar.
find find /ruta -name "archivo.txt" Busca archivos o directorios en el sistema de archivos.
  find /var/www -name '*.css' Buscar todos los archivos que tienen extensión .css de la carpeta /var/www/
     
mount mount -t tipo ruta_unidad ruta_destino Montar sistema de archivos.
  mount -t ntfs /dev/sdb2 /media/win/  
  sudo mount -t iso9660 /Ruta_ISO Montar un ISO.
  sudo mount /Ruta_USB /Ruta_destino Montar USB.
umount umount ruta_unidad Desmontar sistema de archivos.
  umount /dev/sdb2  

Red y Conexiones Remotas:

Comando Ejemplo Descripción
ssh ssh usuario@hostname Inicia una sesión segura de shell remoto.
  ssh -p 20 usuario@IP Conectar por otro puerto.
  ssh -L puerto_local:Host_remoto:puerto_remoto usuario@IP Crear un túnel SSH local.
ssh-keygen ssh-keygen -t rsa -b bits Crear claves.
ssh-copy-id   Copiar claves en el servidor SSH para modo desatendido.
scp scp user@remotehost.com:/remote/path/to/foobar.md /local/dest Copy local file to remote dir
scp foobar.md user@remotehost.com:/remote/dest Key files can be used (just like ssh)
scp -i my_key.pem foobar.md user@remotehost.com:/remote/dest Transferir archivos con SSH.
openssh-server sudo apt-get install openssh-server Instalar servidor SSH.
Editar el archivo /etc/ssh/sshd_config
wget wget URL Descarga archivos desde la web a través de la línea de comandos.
netstat netstat -ntlp # open TCP sockets Ver las diferentes conexiones de red.
netstat -nulp # open UDP sockets Ver conexiones UDP.
netstat -nxlp # open Unix sockets

Comandos de Sistema:

Comando Ejemplo Descripción
uname uname -a Muestra información sobre el sistema operativo.
date date Muestra la fecha y hora actual.
uptime uptime Muestra el tiempo de actividad del sistema.
who who Muestra quién está conectado al sistema.
dmesg dmesg Muestra registros del kernel.
hostname hostname Nombre del equipo.
  hostname -I IP del equipo.
lsb_release lsb_release -a Detectar versión y distribución de Linux.
  cat /etc/issue Igual que el anterior.
alias alias install='sudo apt-get -y install’ Permite crear un alias para los comandos. Poder ejecutar un comando largo con uno mas corto.
locate locate archivo Localizar un archivo en el sistema.
lshw grep cpu Ver configuración de hardware del sistema.

Servicios del sistema:

Comando Ejemplo Descripción
systemctl systemctl start SERVICIO Gestionar servicios del sistema.
  systemctl enable SERVICIO Activar el servicio al arrancar el sistema.
  systemctl disable SERVICIO Desactivar servicio al arrancar el sistema.

Gestores de paquetes:

Comando Ejemplo Descripción
apt apt-get update Actualizar lista de repositorios.
  apt-get upgrade Actualizar dependencias.
  apt-get dist-upgrade Actualizar distribución.
  apt-get --purge remove paquete Desinstalar paquete y sus archivos.
  apt-get autoremove Eliminar dependencias innecesarias.
  apt show cron Mostrar info de un paquete.
  apt list --installed Mostrar paquetes instalados.
dpkg sudo dpgk -i paquete.deb Instalar paquete .DEB
yum yum install PAQUETE [-y] Instalar paquete.
yum check-update Verificar actualizaciones disponibles.
yum update Actualizar todos los paquetes.
yum upgrade PAQUETE Actualizar un paquete específico.
yum remove PAQUETE Desinstalar un paquete.
yum autoremove Eliminar paquetes huérfanos.

Redes y Conectividad:

Comando Ejemplo Descripción
ifconfig ifconfig Muestra información de las interfaces de red.
ping ping ejemplo.com Prueba la conectividad con un host remoto.
netstat netstat -tuln Muestra información sobre puertos de red abiertos.
traceroute traceroute ejemplo.com Rastrea la ruta de paquetes hacia un host remoto.
ssh-keygen ssh-keygen -t rsa Genera pares de claves SSH para autenticación segura.
ip ip a Ver parámetros de red.

GPG:

Ejemplo Descripción
gpg --gen-key Generar claves.
gpg --keyserver pgp.mit.edu --send-keys NNNNNNNN Exportar claves al servidor.
gpg --keyserver pgp.mit.edu --recv-keys NNNNNN Descargar claves del servidor.
gpg --list-keys Listar anillo de claves.

Bash:

Comando Bash Ejemplo Descripción
echo echo "Hola, mundo" Imprime texto en la pantalla.
$(ls) $(ls) Ejecutar comandos a nivel de sistema.
variables nombre="Juan"; edad=30 Declaración y asignación de variables.
if…else bash if [ condición ]; then comando; else otro_comando; fi Estructura condicional.
for loop bash for i in {1..5}; do echo $i; done Bucle que itera a través de elementos.
while loop bash while [ condición ]; do comando; done Bucle que se ejecuta mientras se cumple una condición.
funciones bash function saludo() { echo "Hola, $1"; }; saludo "Juan" Declaración y uso de funciones.
read bash read -p "Ingresa un valor: " valor; echo "Ingresaste: $valor" Lee la entrada del usuario.
case bash case $opcion in 1) echo "Opción 1";; 2) echo "Opción 2";; *) echo "Opción no válida";; esac Estructura de selección múltiple.
arreglos (arrays) bash colores=("rojo" "verde" "azul"); echo ${colores[0]} Declaración y uso de arreglos.
grep grep "patrón" archivo Busca patrones de texto en archivos.
sed sed 's/antiguo/nuevo/g' archivo Edita y transforma texto en archivos.
awk awk '{print $1}' archivo Procesa y formatea texto en archivos.
pipes comando1 | comando2
redirección comando > archivo.txt Redirige la salida estándar a un archivo.
condicional ternario bash edad=20; resultado=$((edad >= 18 ? "Mayor de edad" : "Menor de edad")) Operador ternario para condicionales.

SSH

El archivo de configuración se encuentra en /etc/ssh/sshd_config.

Recargar el servicio después de configurar con systemctl reload sshd para aplicar los cambios.

Parámetro Opción Descripción
PermitRootLogin no No permite conexiones root.
yes Permite conexiones root.
without-password
AllowUsers user1 user2 Permite al usuario1 y usuario2.
DenyUsers user1 user2 Deniega solo a los usuario1 y usuario2.
AllowGroups group1 group2 Permite a los usuarios de los grupos 1 y 2.
DenyGroups group1 group2 Deniega todos los usuarios salvo a los de los grupos 1 y 2.

Crontab

Usamos crontab -e para configurar las tareas de Cron. The locations are as follows:

  • /var/spool/cron/username user specific
  • /etc/crontab system wide crontab

Formato de las tareas:

.---------------- minutos (0 - 59 | */5 [cada 5 minutos])
|  .------------- horas (0 - 23)
|  |  .---------- día del mes (1 - 31)
|  |  |  .------- mes (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- día de la semana (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,etc
|  |  |  |  |
*  *  *  *  * user-name  comando a ejecutar
Comando Descripción
systemctl status crond.service Comprobar el estado del servicio
crontab -l
crontab -e
crontab -e -u username
crontab -r

Carpetas de scripts

Los scripts que se encuentren en uno de los siguientes directorios se ejecutarán en el intervalo especificado por el nombre del directorio:

  • /etc/cron.hourly
  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

Permitir / Denegar uso

Añadir nombres de usuario, uno por línea a los siguientes archivos:

  • /etc/cron.allow Whitelist
  • /etc/cron.deny Blacklist

Logs

La ejecución de cronjobs se registra en /var/log/cron. Los resultados se envían al correo de los usuarios /var/spool/mail/username.

Samba

Server

Archivo de configuración situado en /etc/samba/smb.conf.

Las cuentas locales deben registrarse en Samba mediante smbpasswd.

yum install samba samba-client samba-common # Samba installation
systemctl start smb                         # Start service
systemctl enable smb                        # Start service on system start
vi /etc/samba/smb.conf                      # Change config
testparm                                    # Check if config is ok
systemctl restart smb                       # Reload config
smbpasswd -a username                       # Register user with samba

Ejemplo de /etc/samba/smb.conf:

[global]
  workgroup = WORKGROUP             # workgroup of smb server
  netbios name = centos             # name of smb server
  security = user                   # security mode (user / ads / domain)
  unix password sync = yes          # sync unix password with smb password
  invalid user = root bin daemon    # deny access globally (config in share section overrides this)

[Transfer]                        # name of share
  path = /transfer                  # path of directory to be shared
  comment = File transfer           # description
  read only = no                    # access permissions
  guest ok = no                     # allow guest access (no password)
  browsable = yes                   # visible or hidden?
  valid users = username @groupname # allow user/group to access the share

La sección especial [homes] comparte automáticamente el directorio personal del usuario bajo las siguientes condiciones:

  • Un usuario intenta acceder a un recurso compartido con el nombre de su cuenta de usuario
  • No existe una sección explícita para este recurso compartido en smb.conf.
  • La cuenta de usuario existe en /etc/passwd.

La opción browsable tiene un significado diferente en esta sección y especifica si la parte personal debe ser listada. La opción habitual browsable se hereda de la sección [global]. Se pueden utilizar variables para cambiar la ruta, por ejemplo:

  • %U nombre de usuario actual
  • %H directorio personal del usuario actual

Ejemplo:

[homes]
  browsable = no
  writable = yes
  path = %H/smb

Client

yum install samba-client cifs-utils                       # Install client and tools
smbclient -L //server                                     # Show SMB shares
mkdir /targetdir                                          # Create mountpoint
mount.cifs -o username=jenkins //server/james /mountpoint # Mount manually
umount.cifs /mountpoint                                   # Unmount manually
vi /etc/fstab                                             # Mount on system start
vi /root/cifs/.username                                   # Create credential file
mount -a                                                  # Test fstab
init 0                                                    # Auto mount

FTP

El archivo de configuración se encuentra en /etc/vsftpd/vsftpd.conf

Ejemplo:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES
use_localtime=YES
dirlist_enable=YES
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=192.168.1.10
apt install vsftpd          # Instalación
systemctl start vsftpd      # Iniciar servicio
systemctl enable vsftpd     # Iniciar servicio al arrancar
nano /etc/vsftp/vsftpd.conf # Cambiar configuración
systemctl restart vsftpd    # Reiniciar servicio

MySQL Server

yum install mariadb-server  # Instalar servidor
systemctl start mariadb     # Iniciar servicio
systemctl enable mariadb    # Iniciar servicio al arrancar
mysql_secure_installation   # Run security wizard
mysql -u root -p            # Conectar con MySQL

About

CheatSheet con los comandos básicos de Linux, un ejemplo de uso y descripción. Incluye otros comandos para administrar el sistema, gestión de usuarios y permisos, procesos, gestores de paquetes y más. [En construcción].

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published