Linux Flashcards
PWD
lista el directorio actual
whoami
lista el usuario actual
exec comando
exec comando
time comando (no confundir con DATE)
lista el tiempo que ha tardado en ejecutarse el comando
date
te devuelve fecha y hora
history
lista los últimos comandos tecleados (~/.bash_history)
id
muestra UID y GID del usuario especificado + grupos secundarios
touch nombreFichero
Tocar un fichero (lo modifica) y si no existe lo crea.
(-a solo fecha acceso | -m solo fecha modificación | -c no crear fichero si no existe)
man comando
manual del comando
$USER
Variable usuario que ha iniciado sesión actualmente
$PWD
la ruta directorio actual
$OLDPWD
la ruta al del directorio anterior
$HOME
directorio de inicio del usuario actual
cd
Cambiar Directorio. Ir a un directorio (Videos) a cd Videos | a cd /home/gsus/Documents/Videos
Ir a la carpeta de inicio a cd | Sube un nivel à cd .. (espacio entre d y ..) | Volver al directorio anterior cd -
ls
Listar contenido. (-a ocultos | -l largo | -R recursivo (directorios&sub) | -F marca al final | -d directorios
| – archivos | -S tamaño | -t marca de tiempo | -r inverso | -X extensión | -i muestra inodos)
cp
Copiar ficheros. (-u update si es más nuevo | -r recursivo | -l crea hard link)
mv
Mueve ficheros y renombra. El archivo original lo borra. (-i pregunta antes de sobrescribir)
rm
Remove (-i interactivo | -r recursivo | -f no preguntes) (rm -fr / == muerte)
tar
Empaquetar/desempaquetar. Se combina con parámetros xa comprimir: (-c crear archivo | -f especificar nombre
tar cfvz /ficherocomprimido.tar.gz(.tgz) ~/my-work –> crea tar comprimido verbose ¡¡OJO!! destino origen
tar xfvz /ficherocomprimido.tar.gz(.tgz) –> descomprime el fichero en ‘.’ verbose
tar cvfz file.tar.gz *.c (crea un fichero emaquetado y comprimido con gzip)
# tar cvfj Phpfiles-org.tar.bz2 /home/php (crea un fichero emaquetado y comprimido con bzip2)
-r (actualiza o añade un fichero en un empaquetado concreto)
-f (para poder especificar el nombre del fichero resultante)
-J (para usar el algoritmo de compresion xz)
-t (lista el contenido del archivo empaquetado o comprimido)
-v ver progreso | -z comprime gzip | -x extraer | -tf ver contenido | -rf añadir ficheros al final del .tar)
cpio
Copia ficheros entre directorios. Para copias de seguridad. Se suele encadenar con otros flujos. Parecido a tar
(-i extraer | -o create)
Ejemplo: find ./my-work | cpio –o | gzip > /tmp/backup.cpio.gz
gunzip -c /tmp/backup.cpio.gz | cpio –i
dd
Copia entre dispositivos a bajo nivel. O transformando formatos.
dd if=/dev/zero of=empty.img bs=1024 count=720 –> genera fichero vacío tamaño 720KB
dd if=/dev/cdrom of=/tmp/image.iso
dd if=/dev/hda of=/dev/hdb bs=blocksize à forma rudimentaria de clonar un disco de misma geometría
of=/media/mbr bs=512 count=1
rsync
Copia remota de ficheros (sincronizar ficheros entre 2 máquinas)
mkdir
Crear un directorio (-p con los directorios necesarios o intermedios) mkdir -p c1/c2
rmdir
Eliminar un directorio VACIO (-p árbol entero) rmdir -p c1/c2
chown
Change Owner. Cambia el propietario (-R recursivo) (Solo puede ROOT!!!)
chown user:group | user | :group files (chown siempre borra los bits setuid y setgid)
chown -R pepe:dev /path (establece como usuario y grupo propietario a todos los ficheros y directorios recursivamente )
chgrp
Change group. Cambie el grupo
chmod
Change mode bits. Cambia los bits de permisos
find
Busca ficheros en una jerarquía de ficheros
( / todo el sistema | . à directorio actual | ~ desde directorio home)
find/ -type d (f=regular) | -name my-file | -perm 0777 | -user gsus | -exec
-atime nºdias (tiempo acceso) / ± nºdias
-mtime nºdias (tiempo modificación) / ± nºdias
-ctime nºdias (actualización (cambio) metad) / ± nºdias
-size 10c bytes | k kb | M mb | G gb | b trozos 512 bytes / [Opción: -size +5G (mayor que…)]
ejemplo
comando opciones {} \;
Ej: find -perm 777 -exec chmod 755 {} \;
Busca files con perm 777 y los pasa a 755
locate
Encuentra archivos por su nombre en una BBDD que crea (updatedb à para actualizar BBDD manual)–>HACERLO 1º
whereis
Localizar el archivo binario, el código fuente y la página del manual de un determinado comando
whereis [-bms] comando ( -b –> solo binario | . -m –> solo página manual | -s –> solo código fuente)
type
Muestra que tipo de elemento esta asociado a un comando determinado y alguna información adicional sobre él
stat
Mucha información de fichero o de sistema de ficheros
ln
Crea enlaces ( -d –> duro NO directorios) crear soft y hard links sobre ficheros/directorios
( -s –> simbólico/blando)
si no, es HARD por defecto
Ejemplos:
# ln -s origen nombre_enalce (enlace simbolico, funciona con directorios y
fichero)
# ln origen nombre_enlace (enlace duro, no vale para directorios)
split
Genera ficheros en trozos x bytes x líneas
tr
Translate (cambiar caracteres, borrarlos, etc)
uniq
Eliminar líneas duplicadas
cat / nl
Mostrar por pantalla, Imprimir o concatenar contenido. NL es como cat, pero mostrando números de línea
| -b a numera también las líneas vacías
Ejemplo
cat /etc/redhat-release
head/tail -n
(-n 200 = -200)
Ver las primeras o últimas n líneas. SI NO ESPECIFICAS nº SACA LAS PRIMERAS/ULT. 10
à tail -200f fichero.log / –> tail fichero.txt (imprime las 10 últimas líneas)
(tail -f lo mantiene abierto, para ver “logs” como nuevas líneas)
more / less
Información paginada
cut
Corta en vertical
-b bytes
-f fields/campos
-c chars
wc
Word Count, para contar
wc -w –> palabras
wc -l –> líneas
wc -m –> caracteres <–ojo!
wc -c –> bytes <– ojo!
sed
Stream editor. Por ejemplo para sustituir (no interactiva) ‘s/texto_a_buscar/texto_a_reemplazar/’
à sed ‘s/2020/2021/’ fichero.txt >fichero_nuevo.txt
grep
Extraer líneas que cumplen criterios o filtrar. ( -n –> ver nº línea | -i à no distingue MAY/min | -R recurs)
Variantes: egrep (soporte para expresiones regulares extendidas) –> grep -e
fgrep (no permite expresiones regulares) –> grep -f
tee
El comando tee redirecciona la salida (stdout) a ambos; un archivo y a la terminal.
ps -ef | tee procesos.txt (La salida de ps se muestra en la terminal y al mismo tiempo se redirecciona
al archivo procesos.txt. Con la opción -a (tee -a) concatena (añade al final) al archivo.)
xargs
colocado detrás de una tubería, recupera las cadenas pasadas por argumento de la entrada estándar y ejecuta
comando2 pasándole estas cadenas como argumento
comando1 | xargs [opciones] comando2
–> find ./ -name “*~” | xargs -d “\n” rm
cat
paste
join
cat concatena en vertical, paste en horizontal
paste en horizontal
sobre un campo común (≈ join sql en texto)
sort
Para ordenar líneas de texto
–> -k 3 lista.txt
campo
-b Ignorar los espacios en blanco iniciales
-g Comparar según el valor numérico general
-r Invertir el orden
-n Ordenar por número
-f Ignora distinción mayúsculas/minúsculas
-M Ordenar por mes
-u Permite eliminar las líneas repetidas
-c Compruebe si el archivo de entrada ha sido ordenado
-k campo Ordena considerando campos o columnas específicas. (Delimitador por defecto espacio en blanco)
–> -t “delimidador” En un .csv (separado por comas à -k campo -t ,).
/bin
aplicaciones binarias importantes
/boot
Ficheros de configuración del arranque, núcleos y otros ficheros necesarios para el arranque (boot) del equipo.
/dev
los ficheros de dispositivo
/etc
ficheros de configuración, scripts de arranque, etc.
/home
directorios personales (home) para los diferentes usuarios.
/mnt
sistemas de archivos montados manualmente en el disco duro.
/sbin
binarios importantes del sistema
/var
archivos variables como archivos de registros y bases de datos
df
(display filesystems) –> dispositivos (df -h –> legible humano)
Muestra capacidad, espacio disponible, ocupado
du
(disk usage) –> fichero / directorios (du -sh)
Muestra espacio ocupado (-s total sin subdirect | -c con subdirc)
fsck
(fs check) –> Chek and repair file system
lsof
lista ficheros abiertos por un proceso
Ejemplo:
lsof -u pepe (lista los ficheros abiertos por el usuario)
# lsof -p PID (lista los ficheros abiertos por el proceso con PID)
# lsof -c nombre (lista los ficheros abiertos por el proceso con nombre)
# lsof /path/fichero (muestra los procesos que tiene abierto el fichero)
# lsof -t /path/fichero (muestra solo los PID de los procesos que tiene abierto
el fichero)
mount -t FileSystem origen destino
Montaje de sistemas de ficehros
/etc/fstab à (montajes permanentes)
#device mount point FileSystem options
/dev/sda1 /var/log xfs,nfs,cifs… …..
/etc/mtab à Se registra cada montaje (montajes actuales)
ps
Process Snapshot. Muestra los procesos en ejecución del usuario
Ejemplo:
ps -eF (todos los procesos y formato largo extendido). Con –forest o -H
saca el arbol padres/hijos
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 1 0 0 34749 6684 0 Dec21 ? 00:00:06 /sbin/init
…
mysql 1041 1 0 163468 74540 0 Dec21 ? 00:02:47
/usr/sbin/mysqld
# ps -eLf (informacion sobre los threads). Con -H tambien saca info de threads
UID PID PPID LWP C NLWP STIME TTY TIME CMD
…
www-data 23807 1868 23807 0 27 06:25 ? 00:00:00 /usr/sbin/apache2 -
k start
www-data 23807 1868 23837 0 27 06:25 ? 00:00:00 /usr/sbin/apache2 -
k start
www-data 23807 1868 23838 0 27 06:25 ? 00:00:00 /usr/sbin/apache2 -
k start
otras opciones interesantes:
-p –> PID (muestra un proceso concreto)
-u –> UID/user (muestra los procesos del usuario efectivo)
-U –> UID/user (muestra los procesos del usuario real)
-g –> GID/grupo (muestra los procesos del grupo efectivo)
-G –> GID/grupo (muestra los procesos del grupo real)
-eo lista_columnas_a_mostrar
top
Muestra dinámicamente una tabla con los procesos en ejecución
nice
Establece prioridad a un comando (cuanto menor, más prioridad)