Show Menu
Cheatography

Bash Linux Cheat Sheet (DRAFT) by

Examen de Sistemas Informáticos

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Basics

~
indica que está en el directorio home
$
indica si es un usuario normal
#
indica si es el admini­strador del sistema
root
es el usuario admini­strador del sistema y puede realizar cualquier tarea de admini­str­ación
sudo -l
muestra toda la inform­ación
exit
salir
/home
directorio del usuario
pwd
muestra la ruta donde estoy
cd
cambia de directorio
cd /direc­tor­io/­sub­dir­ect­orioA
cd ..
va al directorio de atrás
cd
va al home del usuario
cd ./dire­cto­rio­/su­bdi­rec­torioB
.
hace referencia al directorio actual
..
hace referencia al directorio padre (al anterior)
tree
ver direct­orios en árbol
info "­com­and­o"
info del comando
apt-get update
instala una actual­ización
apt clean
instala el paquete sin instalarlo
apt purge nombre­_pa­quete
purga paquetes
apt remove nombre­_pa­quete
elimina paquetes

Buscar, filtrar, ordenar, contar

find ruta/ -name loqueq­uiera
busca texto
find ruta/ -name a*
busca en la ruta todo lo que empiece por a
find ruta/ -name a* -exec rm {} \
borra todo lo que ha encontrado en ese fichero que empiece por a
aclaración
para añadir que haga algo con el resultado añadimos los comandos y al final " {} \;
find ruta/ -type f
ficheros
find ruta/ -type d
direct­orios
find ruta/ -type l
enlaces simbolicos
find ruta/ -user nombre­usuario
usuario
find ruta/ -perm XXX
permisos
find ruta/ -size +512c
tamaño
-not -path '/\.'
No muestra en el resultado archivos ocultos .hidde­n_files
 
IMPORTANTE si añades un -exec para realizar alguna accion con lo encont­rado: hay que añadir al final {} \
find / | grep .conf
equivale a find / -type f -name *.conf
 
find /home/­javi/ -type f -name _pract­ica­_SMR_21 -exec ls -l {} \
 
find / -type f -size +4M -size -7M
 
find / -type f -atime -1
 
find / -type f -mmin -5
grep Eva fichero.tx
buscar palabra. Muestra la linea completa donde aparece Eva
grep "­Garcia Eva" ficher­o.txt
buscar conjunto palabras en ese orden
wc
contar el número de líneas, palabras y caracteres
wc -w (words)
wc -l (lines)
sort ficher­o.txt
ordena un fichero
sort -k2 ficher­o.txt
ordena por la 2º columna
sort -n ficher­o.txt
ordena por numeros
sort -r ficher­o.txt
ordena al reves
sort -u ficher­o.txt
elimina lineas duplicadas
| unir varias opciones
ls -l ficher­o.txt | grep 2020 | sort -k2
 

Estructura de direct­orios

ls
muestra contenido del directorio
ls -a
muestra todos los archivos y direct­orios, incluso aquellos que están ocultos
ls -C
muestra resultados en formato columna
ls -d
muestra solo el nombre del directorio en lugar de su contenido
ls -F
agrega caracteres especiales al final del nombre de cada archivo para indicar su tipo (por ejemplo, una barra diagonal para un direct­orio)
ls -G
muestra los archivos y direct­orios en color, lo que puede facilitar la lectura
ls -h
muestra los tamaños de los archivos en un formato legible por humanos, como “1K” o “1G”
ls -I
i, formato de lista larga
ls -i
muestra el número de inodo de cada archivo o directorio
ls -l
muestra detalles detallados sobre los archivos y direct­orios, incluyendo sus permisos, propie­tarios, tamaños y fechas de modifi­cación
ls -m
separa el contenido del directorio con comas
ls -R
muestra todos los archivos y subdir­ect­orios en una ubicación dada, incluyendo los que están en subdir­ect­orios
ls -r
invierte el orden de visual­ización de los archivos
ls -S
ordenar por tamaño de archivo
ls -s
muestra el tamaño de los archivos en bloques de disco
ls -t
muestra los archivos ordenados por fecha de modifi­cación, con los más recientes primero

Usuarios y Grupos SIEMPRE CON SUDO

sudo su
cambia usuario
sudo useradd
crear usuarios
sudo useradd -g
asociar a un grupo princiapl (adm)
sudo useradd -d
asociar ruta absoluta para su home
sudo useradd -m
por si no ha sido creada la home
sudo useradd -s
asociar la shell ( /bin/bash )
sudo useradd -g adm -d /home/pepe -m -s /bin/bash pepe
sudo passwd usuario
establece contraseña
sudo passwd usuario -d
borra contraseña
sudo passwd usuario -e
fuerza caducidad contraseña
sudo passwd usuario -i
si la contraseña de la cuenta lleva caducada INACTIVE días, la cuenta será desact­ivada
sudo passwd usuario -i
si la contraseña de la cuenta lleva caducada INACTIVE días, la cuenta será desact­ivada.
sudo passwd usuario -l
bloque de la cuenta
sudo passwd usuario -n MIN_DAYS
obliga a que la contraseña se cambie como pronto a los MIN_DAYS
sudo passwd usuario -x MAX_DAYS
obliga a que la contraseña se cambie como tarde a los MAX_DAYS
sudo passwd usuario -S
informa estado contraseña
sudo passwd usuario -u
desbloquea cuenta
sudopasswd usuario -w
preaviso de la fecha de caducidad
sudo chpasswd
cambia contraseña
sudo usermod
modifica algo de ese usuario
sudo userdel
borrar usuarios (no las carpetas)
sudo userdel -r usuario
borra todo
sudo groupadd
crear grupo
sudo adduser usuario grupo
añade el usuario al grupo
sudo deluser usuario grupo
borra el usuario del grupo
sudo groupmod
modifica grupo
sudo groupmod -n nombrefin nombre­inicial
cambia nombre al grupo
sudo groupdel
borra grupo
sudo chsh
cambia la shell de un grupo
 

Metaca­rac­teres

*
empieza, termna, contiene
?
equivale a un caracter
{}
varias opciones separadas por comas {az,ro]*
[]
es válido lo que haya dentro de ellos
!
negaci­ón/lo contrario
|
la salida estándar (pantalla) de un comando se convierte en la entrada estándar del siguiente comando
<
redire­cciona la entrada estándar sustit­uyé­ndola por el archivo que le indique
>
redire­cciona la salida estándar de un proceso al fichero o dispos­itivo que se le indique, borrando la inform­ación que el fichero contenía. Si es un fichero que no existe, lo crea
>>
redire­cciona la salida estándar de un proceso al fichero que se le indique. No borra el contenido del fichero, sino que añade la inform­ación al final del fichero.
2>
redire­cciona la salida de errores de un proceso al fichero que se le indique, borrando la inform­ación que el fichero contenía
2>>
redire­cciona la salida de errores de un proceso al fichero que se le indique pero añadiendo al final de la inform­ación del fichero la salida, con lo que no se borra el contenido del fichero
&>
redire­cciona tanto la salida de errores como la salida estándar a un fichero o dispos­itivo
&>>
redire­cciona tanto la salida de errores como la salida estándar a un fichero o dispos­itivo, pero añadiendo la inform­ación al final del contenido del fichero

Enlaces

Enlaces simbólicos
ln -s "ruta absoluta origen­" "­nombre del enlace­"
Enlaces simbólicos
ln -s "ruta abolsuta origen­" "ruta absoluta destin­o" "­nombre enlace­"
Enlaces físicos
ln "ruta ficher­o" "­nombre enlace­"

Fechas y Manten­imiento Equipo

date
fecha completa
date +%d
día
date +%m
mes
date +%y
año
date +%d/+%­m/+%y
día, mes, año
date --date­="to­mor­row­"
muestra mañana
date --date­="next mon"
muestra el próximo lunes
cal
calendario
cal -m 11
muestra calendario noviembre
cal -m 11 2023
muestra calendario noviembre del 2023
cal -y 2021
muestra un calendario del año 2021
ncal -M-b
calendario empieza en lunes estilo clásico
who
muestra el usuario que ha iniciado sesión
whoami
muestra el usuario actual
id usuario
saber datos del usuario
shutdown
apagar
shutdown -h +10
apagar dentro de 10h
reboot
Reiniciar
reboot -p
apagar
uptime
saber cuanto tiempo lleva encendida la máquina
free
saber cantidad RAM libre
free -h
la h humaniza las unidades
df
saber espacio disponible en disco (disk free)
du
saber espacio usado en disco (disk used)
history
muestra el historial completo de comandos usados
uname
muestra info sobre el equipo y sistema operativo
lsb_re­lease
muestra info distri­bución y versión instalada

Atributos y Permisos

lsattr
nos servirá para listar atributos de ficheros y direct­orios
lsattr -Ra | more
se ven todos los atributos extendidos de todos los archivos y direct­orios en el directorio actual, mostrá­ndolos página por página
chattr +A prueba.txt
nos servirá para cambiar los atributos
chattr +c prueba.txt
comprime automa­tic­amente el fichero / lo descom­prime cuando se vaya a usar.
chattr +u prueba.txt
permite recupe­ración aunque sea eliminado
chattr +e prueba.txt
al ser eliminado todos sus bloques se sobree­scriben con 0
ls -l (- no tiene r lectura w escritura x ejecución)
nos podemos dar cuenta que a un lado aparecen unos pequeños atributos, estos son los permisos que tiene cada archivo. Ej: ls -las (large + all + size)
chmod (- elimina, + añade, = asigna)
 Se utiliza para cambiar los permisos del archivo o direct­orioSe pueden modificar en formato simbólico o numérico (con letras o con números.) Existe la opción -R, que hace cambie de forma recursiva, es decir, que también afectará el cambio al contenido de direct­orios.
chmod (u user, g grupo, o resto, a todos)
En resumen, la primera cifra (7, 5 o 6) representa los permisos del propie­tario, la segunda cifra (7, 5 o 4) representa los permisos del grupo y la tercera cifra (7, 5 o 4) representa los permisos de otros usuarios que no son el propie­tario ni están en el grupo.
chmod u+rw
Otorga permisos de lectura y escritura al propie­tario (usuario)
chown
se utiliza para cambiar el propie­tario del fichero o directorio
chgrp
es como la anterior pero así cambiamos el grupo.
umaks
Este comando es la abrevi­atura de user file-c­reation mode mask, y sirve para establecer los permisos por defecto que tendrán los uevos ficheros y direct­orios que creemos.
 

Contra­señas y Seguridad

cat /etc/p­asswd
podemos ver info de los usuarios (no sus contra­señas).
cat /etc/s­hadow | grep nombre­usuario
archivo ASCII de acceso restri­ngido que almacena para cada usuario las contra­señas encrip­tadas y más info
cat /etc/p­rofile
contiene el perfil igual para todos los usuarios, en su interior podemos poner comandos que se ejecutarán al iniciar sesión cualquier usuario
 ls /etc/p­rof­ile.d/
ejecuta todos los sc­rip­t que se encuentran en el directorio
nano .profile
Modifica tu perfil. Sitúate en tu directorio home y edita el fichero .profile
chage -l usuario
obtiene inform­ación sobre la contraseña de un usuario
chage -M 0 -W 560 ann
Si queremos obligar al usuario ann a modificar la contraseña cada 60 días, y que mande un aviso 5 días antes de que la contraseña va a caducar, puedo hacerlo así
pwunconv
se elimina el ficher­o s­had­ow ­pasando las contra­señas cifradas al ficher­o p­asswd

Direct­orios y Ficheros

mkdir
crear directorio (carpeta)
rmdir
borrar directorio vacío
rmdir a/b/c
borra el último directorio
rmdir a/b/c -p
borra todos
rm
eliminar direct­orios o ficheros
rm -i
pide confir­mación (itera­ction)
rm -r
lo hace recursivo. Si es directorio usar siempre -r
mv
cambiar nombre fichero a.txt b.txt
mv
mueve direct­orios mv spiderman ../../DC/
touch
crea fichero
echo
escribe texto dentro de un fichero "..."­ > a.txt
cat
mostrar contenido archivo
cat > prueba.txt
crea fichero con ese nombre, se escribe lo que sea y luego ctrl+d para salir
cp hola ../../DC/ -r
copia hola a DC
head nombre.ex­tension
muestra las primeras 10 líneas del fichero
tail nombre.ex­tension
muestra las 10 últimas líneas del fichero
head -num
muestra las num número de líneas primeras pedidas
tail -num
muestra las num número de líneas últimas pedidas
nano nombre.ex­tension
muestra contenido de fichero y lo permite editar

Registros y Archivos

/var/log
encont­raras registro de todo lo que sucede en tu máquina. Los princi­pales son: auth | authpriv | cron | kern | lpr | syslog | user
ps
muestra los procesos del sistema
ps -ef
Muestra inform­ación sobre todos los procesos y propor­ciona una salida más detallada que incluye inform­ación sobre el propie­tario del proceso, el terminal en el que se está ejecut­ando, etc.
kill -9
matar/­ter­minar el proceso. Ej: kill -9 1530 (mato el proceso 1530)
top
muestra proces­os/­rec­ursos
htop
muestra procesos mas guay (puede que tengas que instalar algo) :)
tar comprimir
$ tar -cvf nuevo.tar uno.txt dos.txt tres.txt
tar descom­primir
$ tar -xvf archiv­o.tar
tar ver contenido
$ tar -tf archiv­o.tar.
zip comprimir
$ zip nuevo.zip uno.txt dos.txt tres.txt
zip descom­primir
$ unzip nuevo.zip
zip ver contenido
$ unzip -v nuevo.zip
rar comprimir
$ rar a nuevo.rar uno.txt dos.txt tres.txt
rar descom­primir
$ rar x nuevo.rar
rar ver contenido
$ rar v nuevo.r­ar o $ rar | nuevo.rar