Algunas funciones que puedes realizar con la línea de comando en Linux hay una lista más extensa en este enlace.
Distribuciones GNU/Linux
- Debian
- Red Hat
- Slackware
GUI y CLI y VT
Graphical User Interface
Command Line Interface
Virtual Terminal
Tipos de scripts
Shells
bash y sh
ash, dash
ksh
csh, tcsh
zsh
Conectarse a un servidor linux
Desde putty.
Descargar putty.
Seleccionar SSH y poner nombre de usuario y servidor.
usuario@ip el puerto por default es 22.
Para salir rapidamente del servidor es con control t.
Comandos básicos (Enlace a lista de comandos extensa).
ls
Podrás ver contenido de la carpeta actual
pwd
Devuelve la ruta del sistema
cd
Es para cambiarte de directorio
ls -l
Para ver los permisos de los archivos.
--help o -h
Buscar ayuda de los comandos.
cd --help
Mostrar la ayuda del comando cd.
man
Devuelve ayuda formateada de los comandos.
fish
Devuelve una shell con información adicional de lo que hace cada comando.
lsblk
Devuelve los dispositivos en bloque.
Enlaces en Linux
Enlaces duros o hardlink
echo "Hola Mundo" > archivo1
Crear un archivo txt llamado archivo1
ln archivo1 archivo2
Crea un enlace llamado archivo2 que apunta a archivo1
Si se modifica el archivo1 afecta el archivo 2 y viceversa.
ls -li
Devuelve el identificador unico a la estructura de datos donde estan los archivos creados.
Enlaces simbólicos o soft link.
ln -s archivo1 archivo3
Crear un enlace, a diferencia del enlace duro, este conserva otro identificador de inodo.
Rutas absolutas
Parte desde la raiz, es decir /home/desktop/etc
Ruta relativa
Parte de la carpeta actual
mv archivo2 archivonuevo
Copiar un archivo
cp archivo archivo2
Cambiar el nombre de un fichero.
mv archivonuevo /tmp/
Mover el archivonuevo a /tmp/
rm ficheronuevo
Borrar el ficheronuevo.
c -rp directorio directorio2
Copiar un directorio de manera recursiva conservando los permisos.
rm -r directorio
Borrar un directorio.
file fichero
Preguntar que tipo de archivo se encuentra dentro.
stat fichero
Muestra información completa de un archivo.
Editor de texto
nano
vim o vi
Tareas de superusuario.
su -
Cambiar a root
whoami
Preguntar quien esta logueado.
cd /var/log
Ir a el directorio de logs
grep cron syslog
Buscar si hay errores con cron.
grep -i error syslog
Ver los errores en syslog
grep -iv error syslog
Mostrara todas las lineas excepto las que contengan la palabra error.
grep -ir warm log/
Mostrar todo lo que coincida con warn dentro de log.
egrep 'cron|error|warn' syslog
Filtrar contenido con cron, error y warn en syslog
grep -A 1 'cron' syslog
Mostrara el resultado cron y una linea despues (para antes usar -B) para saber que hay delante en syslog.
wget link
Descargar un documento de internet, teniendo la dirección del documento.
wget link -O test.txt
Descarga un archivo y le asigna el nombre test.txt
curl link
Solo muestra información de un archivo de internet sin descargarlo.
curl link | grep primum
Puede ver información del archivo, como velocidad de descarga, lineas, etc.
Trabajar con cadenas de texto grandes.
cd /var/log
Ir al ficher var log.
ls lrt
Listar los archivos del fichero actual.
who wtmp
Ver los accesos de la maquina.
who wtmp | cut -d " " -f 1
Delimitar las columnas, en este caso la primer columna.
who wtmp | cut -d " " -f 1 | sort
Ordena el resultado.
who wtmp | cut -d " " -f 1 | sort | uniq
Muestra los usuarios sin repetir.
who wtmp | cut -d " " -f 1 | sort | uniq -c
Muestra hasta cuantas veces ha entrado cada usuario.
who wtmp | wc -l
Ver cuantas lineas tiene el resutado, sin -l muestra palabras y caracteres.
who wtmp | cut -d " " -f 1 | tr [a-z] [A-Z]
Cambia a mayuscula los datos.
Comprimir y descomprimir archivos.
gzip useradd
Comprimir un archivo.
gunzip useradd.gz
Descomprimir un archivo
tar cfv default.tar default/
Comprimir carpetas.
tar zcfv default.tgz default/
Versión comprimida
tar xfv default.tar
Extraer el fichero.
pipelines
cd /var/log/
Mover al directorio /var/log/ ya que aqui hay info para experimentar.
more cloud-init.log
Ver el contenido de cloud-init.log
grep '2022-01-23' cloud-init.log
Filtrar por fecha el contenido.
grep '2022-01-23' cloud-init.log | cut -d "-" -f4
Delimitar el resultado por la cuarta columna.
grep '2022-01-23' cloud-init.log | cut -d "-" -f4 | cut -d "[" -f1
Delimitarlo tambien por el bracket de apertura.
grep '2022-01-23' cloud-init.log | cut -d "-" -f4 | cut -d "[" -f 1 | sed s/' '//g | sort | uniq -c
Ver el resultado organizado.
Scripts
echo "Hola"
Escribir hola
nano script.sh
#!/bin/bash
echo "Script"
bash script.sh
Ejecutar el script
./script.sh
Ejecutar script, pero requiere permisos de ejecución.
chmod 755 script
Permiso de ejecución.
ssh-keygen
Generar una clave SSH.
ssh usuario@ip -i clavegenerada
Conectarse de forma segura a un servidor con la clave generada por ssh.
Trabajar con el disco duro
df -h
Ver los discos virtuales.
free
Muestra la memoria
free -h
Muestra la memoria con un formato más amigable.
uptime
Ver tiempo de actividad.
cat /proc/cpuinfo
Ver información de la CPU
top
Ver procesos en ejecución, cambia cada 2 segundos.
htop
Ver información del sistema un poco más organizada.
bpytop
Una herramienta interesante para visualizar información del sistema.
Usuario root
useradd
Crear un usuario
adduser
crear un usuario añadiendolo a los grupos predeterminados, creandole home.
userdel usuario
Borrar un usuario.
adduser usuairo
Crear usuario con contraseña, directorio, datos, etc.
deluser usuario
Borrar usuario bien.
visudo
Agregar un usuario a administradores o root,
# User privilege specification
root ALL=(ALL:ALL) ALL
usuario_nuevo ALL=(ALL:ALL) ALL
Para agregar usuario a root dentro de visudo.
Permisos
Cuando ejecutas el comando ls -l los 10 primeros caracteres son los permisos por usuario, grupos y otros.
El identificador guion medio al inicio indica que es un archivo y la d que es un directorio.
chmod u+x test
Dar permiso de ejecución a un usuario en test.
chmod g+x test
Permiso de ejecución al grupo.
chmod o+x test
Permiso de ejecución a otros.
Para quitar en vez de usar + se usa -.
apt install apache2
Se instalara apache y si tiene dependencias lo instalara tambien.
lsof -i -P | grep -i listen
Ver puertos en escucha.
apt remove apache2
Desisntala apache2
apt purge apache2
Desisntala apache junto con todas las configuraciones que puedan existir en el sistema.
apt autoremove
Desisntala las dependencias de programas que ya se desisntalaron y siguen en el sistema.
dpkg -i paquete.deb
Instalar paquetes descargados de internet, dara problema si tiene dependencias, para eso hay que instalar manualmente.
dpkg -i | more
Ver los paquetes instalados en el sistema
cd /etc/apt/
Aqui estan los repositorio del sistema, por si se requiere instalar más.
date
Ver la fecha
timedatect
Ver la fecha local, universal, RTC, Time zone, etc.
timedatectl list-timezones
Ver el listado de la zona horaria.
sudo timedatectl set-timezone Europe/Madrid
Asignar una zona horaria.
sudo apt install ntpdate
Instalar cliente de fecha más exacta y de actualización frecuente.
sudo ntpdate mx.pool.ntp.org
Conectar al reloj en pool.ntp.org
sudo loadkeys es
Cargar la configuración en el teclado, por ejemplo es.
sudo dpkg-reconfigure console-setup
Reconfigurar la distribución de teclado permanentemente.
Busqueda
find . -name '*sys*'
Buscar algo que contenga sys
find . -name '*sys*' -ctime -3
Buscar en menos de 3 días, con + es más de 3 días. El parametro atime es la vez que se accedio al fichero.
sudo apt install locate
Instala locate.
sudo updatedb
Es otro comando para búsqueda a diferencia que lo guarda un una base de datos.
locate syslog | grep '/var/log'
Buscar syslog dentro de /var/log.
for i in $(locate syslog | grep '/var/log'): ls -l $i; done
Buscar y ver ciertos parametros.
Redes
ip a
Ver ip de la maquina.
ip route
Ver la puerta de enlace.
man ip
Ayuda con comando ip.
cd /etc/netplan
Buscar configuración de red.
cat 00-installer-config.yaml
Ver la configuración de red
netplan try
Probar la nueva configuración y luego se aplica si es necesario.
netplan apply
Aplica automáticamente los cambios
Tareas programadas
cat /etc/crontab
Ver los script de tareas programadas, tambien se pueden ver ejemplos de tareas programadas
sudo vi /etc/crontab
Editar el fichero para programar una tarea.
cd /etc/cron.daily/
Con un ls se veran todos los script que se ejecutan cada día. hourly para hora, weekly para semana
echo $PATH
Ver el path del sistema
ls -la
Ver archivo incluyendo los ocultos.
nano .bashrc
Configuración del bash, con mucho cuidado. (Aqui podemos agregar alias entre otras cosas.)
En la linea #force_color_promp=yes si se quita # coloreara la terminal.
source .bashrc
Recargar el script.
cat ps1.sh
Un ejemplo de colores de shell, source ps1.sh para ejecutarlo, en Internet habra más lista de colores.
Dispositivos del sistema
lsblk
Los dispositivos de bloque del sistema.
fdisk /dev/sdb
Particionar un disco.
mkfs.ext4 /dev/sdb1
Formatear como ext4 la unidad /deb/sdb1. (Se pueden ver más tipos de formato con mkfs. tab)
e2label /dev/sdb1 disco1
Etiquetar el disco.
mount -t ext4 /dev/sdb1 /home/user/disco1/
Montar la unidad sdb1. ext4 es opcional.
sleep 5
Te bloquea la terminal por 5 segundos. ctrl z para cancelar.
bg %1
pasar la tarea 1 a background.
screen
Te abre una terminal para que ejecutes comandos y los dejes en espera.
screen -ls
Ver que esta corriendo en screen.
Servicios del sistema con permiso sudo
apt install nginx
Instalar el servicio nginx.
ps aufx | grep nginx
Ver si esta ejecutandoce el servicio nginx.
systemctl stop nginx.service
Parar el servicio nginx.
journalctl -u nginx.service -xe
Ver un log de errores del servicio.
cd /etc/systemd/system/
Ver archivos del sistema.
ls -l > /tmp/1
Enviar la salida de ls -l a /tmp/1 con doble >> se modifica el archivo.
cat syslog 2> /tmp/1
Envia el error al archivo /tmp/1
echo $?
Ver la ultima ejecución, cero es bueno y 1 es un fallo. puedes enviar a /deb/null si no te interesa ver resultados.
cd /var/log
Consulta de logs
dmesg
Comprobar como ejecuto el sistema.
journalctl
Tambien da informaciónd el sistema y arranque.
Gracias por compartir. 😉