Línea de comando Linux

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.

Conexión SSH

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 -.

Instalar software.

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. 😉

Related Posts

Deja una respuesta

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