EJERC Linux Repaso Comandos
EJERC Linux Repaso Comandos
EJERC Linux Repaso Comandos
Fuser y lsof
Fuser: identifica qué procesos están utilizando un fichero o carpeta determinada
o un socket.
- Identifica los procesos, mostrando su PID, que están utilizando un fichero,
una carpeta o un socket.
- De hecho también nos brinda la posibilidad de matar dichos procesos.
- Su modo más básico es sin parámetros:
o fuser .
- En el resultado veremos los diferentes PID o número de procesos que
utilizan el fichero.
- permite saber tódolos procesos que están a usar o punto de montaxe /media/cdrom0:
- permite matar tódolos procesos que están a usar o punto de montaxe /media/cdrom0,
- pero o punto de montaxe seguirá montado:
EJERCICIOS:
ROOT: lsof -i
- permite ver tódolos procesos que teñen abertos ficheiros baixo o cartafol /var/log
- permite saber tódolos procesos que están a usar o punto de montaxe /media/cdrom0
- permite saber tódolos procesos que está a usar o usuario user, así como tamén os
ficheiros abertos dese usuario.
- permite saber tódolos ficheiros abertos polo comando iceweasel cando é executado co
usuario user
ACTIVIDADES:
- Mostrar todos los procesos que teñen abertos ficheiros baixo o cartafol /var/log
- Mostrar todos los ficheiros abertos polo comando systemd
- Mostrar todos los procesos que están a usar o punto de montaxe /media/cdrom0
- Mostrar todos los procesos que está a usar o usuario user, así como tamén os ficheiros
abertos dese usuario.
- Mostrar todos los ficheiros abertos polo comando iceweasel cando é executado co
usuario user
ACTIVIDADES DE RED:
Ip addr
Ip address
Ip address show
Ifconfig eth0
IP: 192.168.100.10
Gateway: 192.168.100.1
/etc/init.d/networking restart
ALCANCE GLOBAL
ifconfig eth1 192.168.100.11/24
ip addr add 192.168.100.11/24 dev eth1
ip addr add 192.168.100.11/24 dev eth1 label eth1:0
ALCANCE LOCAL
ip addr add 192.168.100.11/24 dev eth1 scope host
ip addr show eth1
Dhclient:
- Configuración dinámica de la red eth0 en modo verbose o detallada
Dhclient –v eth0
ACTIVIDADES SSH:
- Tendo en conta que o servizo ssh no host B espera a escoita no porto 9876, dende o
host A sendo root quérese copiar o ficheiro $HOME/cousas.txt no host B no destino
$HOME do usuario root.
scp –P 9876 -r ~/cousas root@192.168.100.20
Lsattr
OPCIONES:
-a Lista todos los archivos en directorios, incluyendo archivos que empiecen por `.'.
Chattr
OPCIONES:
-i Elimina el inmutable.
e: extents.
“e” que es propio del sistema de ficheros de linux para el mapeo de los
bloques en el disco y no se puede modificar
Indica que el archivo está utilizando extents para mapear los bloques en
disco.
o Los extents son rangos de bloques continuos, lo cual:
o reduce la cantidad de metadatos necesarios para mantener el
archivo;
o mejora el rendimiento para archivos grandes;
o reduce la fragmentación del sistema de archivos.
Ana entraría por permisos de otros. Con permiso de lectura, puede leer los
atributos. Por lo tanto podría ejecutar el comando.
Indica que tiene el formato extend, para mapear los bloques en el disco.
NO se podría, por el atributo append only. Además, chown solo se puede usar con root
o el usuario propietario.
Chown puede cambiar usuario y grupo de enlaces simbólicos:
- chown user enlace_simbolico (cambiaria el usuario del archivo original)
- chown –h user enlace_simbolico (cambiar el usuario del enlace simbolico)
- chown –R user.group directorio
Executamos os seguintes comandos:
$ whoami
ana
$ id ana
uid=1001(ana) gid=1002(primaria) grupos=1002(primaria)
$ ls -l $HOME/file1.txt
-rw-r--r-- 1 ana primaria 20 feb 12 22:11 /home/ana/file1.txt
$ lsattr $HOME/file1.txt
----ia-------e-- $HOME/file1.txt
$ echo '1 2 3 4 5' >> $HOME/file1.txt
Entón, o último comando executado por ana podería engadir contido
ao ficheiro:
Anular las listas de acceso y las default que pudiera tener una carpeta
Setfacl –b –k –R carpeta
Setfacl –s u:lol:r carpeta : borra las ACL existentes, y crea una nueva.
Setfacl –b
Borrado de una entrada ACL:
Listado muestra +:
Ls –l : si tiene ACL, muestra un + al final.
MASK
Esta entrada sólo afecta a los ACE nombrados, aquellos que tiene un
usuarios/grupo en su entrada (user:juan:rw), y que suelen cruzarse con los
permisos que tengan los usuarios y grupos para generar permisos
efectivos.
Setfacl –m m::r--
Conflictos ugo y ACL
Ante confictos con uo y ACL, prevalecen ugo.
Ante conflicto g de ugo y ACL, prevalece la máscara.
$ whoami
ana
$ id ana
$ id carmiña
$ getfacl /tmp/COMUN
# file: tmp/COMUN/
# owner: ana
# group: primaria
user::rwx
group::r-x
group::primaria:---
mask::r-x
other::r-x
$ su - carmiña
$ whoami
carmiña
$ cd /tmp/COMUN/
$ whoami
ana
$ id ana
$ id carmiña
$ getfacl /tmp/COMUN
# file: tmp/COMUN/
# owner: ana
# group: primaria
user::rwx
group::r-x
group::primaria:rwx #effective:r-x
mask::r-x
other::r-x
$ su - carmiña
$ whoami
carmiña
$ touch /tmp/COMUN/vaibailar.txt
. = cualquier carácter
* = 0 o más ocurrencias del patrón anterior
+ = 1 o más ocurrencias del patrón anterior
? = 0 o 1 coincidencia de la expresión regular anterior
- Busqueda en fich.txt, cualquier palabra que comience por
a, en el lmedio cualquier carácter y finalice por c.
Grep –E “^a.*c$” fich.txt
- Busqueda del patrón “rfc” dentro de una palabra,
dejando el cursor a la espera de una entrada.
Grep –o [rfc]
- Sobre la url ww.google.es, reemplazar ww por 2www
Echo “ww.google.es” | sed –r ‘s|(ww)|\1s\2www’
- Sobre la url http://www.google.es, reemplazar http por
https, www por 2www y .es por .com y añadir .org al
final.
Echo http://www.google.es | sed –r ‘s|(http)(://)(www)
(.google)(.es)|\1s\https\3s\2www\5s\(.com)\5s.org’
12. Añadir ceros al identificador de las plantas para que tengan todos 3
dígitos.
14. Construir un nuevo fichero que incluya solo las filas sin datos faltantes.
carta música rosa
EJEMPLO 4
Visualizar todos los archivos a partir de /etc que tienen extensión .conf:
$ find /etc -name "*.conf"
EJEMPLO 5
Listado de archivos que tengan la letra a minúscula en su nombre:
$ ls -d *a*
EJEMPLO 6
Mover todos los archivos de extensión txt, que comiencen por prov y
entre medias tengan exactamente 2 caracteres cualquiera. Por
ejemplo: prov01.txt, provAA.txt, prov5F.txt, …, al directorio provincias:
$ mv prov??.txt provincias
Chmod
#Engadir todos os permisos(rwx) ao directorio tmp/permisos
e a tódolos ficheiros e subdirectorios pertencentes a
tmp/permisos.
Chmod –R 777 /tmp/permisos
Chmod –R a+rwx /tmp/permisos
Sudo su –
Ls –ld permisos
Diferencia entre df y du
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10160436 1407160 8241208 15% /
tmpfs 1009108 0 1009108 0% /dev/shm
/dev/mapper/local-home
28899452 15885616 11546164 58% /home
/dev/mapper/local-www
25803068 4970604 19521744 21% /var/www
/dev/mapper/local-log
5160576 209984 4688448 5% /var/log
/dev/mapper/local-usrlocal
10321208 2859660 6937260 30% /usr/local
# df -hP
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.7G 1.4G 7.9G 15% /
tmpfs 986M 0 986M 0% /dev/shm
/dev/mapper/local-home 28G 16G 12G 58% /home
/dev/mapper/local-www 25G 4.8G 19G 21% /var/www
/dev/mapper/local-log 5.0G 206M 4.5G 5% /var/log
/dev/mapper/local-usrlocal 9.9G 2.8G 6.7G 30% /usr/local
# du /var/log/
640 /var/log/audit
48 /var/log/cups
4 /var/log/mail
4 /var/log/httpd
(...)
5252 /var/log/
# du -sh /var/log/
el -sh significa que queremos el gran total ( s: sumarizar) y que utilice letras para
definir los tamaños, MB, GB, etc.
Debemos tener en cuenta que du (disk usage) calcula el espacio en disco, por lo que en
caso que creemos un fichero que ocupe únicamente el espacio que use veremos
tamaños diferentes con un ls que con du. Por ejemplo, creamos dicho fichero:
dd if=/dev/zero of=/var/storage/vm/vm01.dsk.root \
bs=1 count=1 seek=1073741824
$ ls -l vm01.dsk.root
-rw-rw-r-- 1 jprats jprats 1073741825 Jul 18 06:04 vm01.dsk.root
$ du -h vm01.dsk.root
4.0K vm01.dsk.root
Para usar du con los tamaños aparentes en lugar de los tamaños reales en disco
deberemos usar la opción –apparent-size:
$ du --apparent-size -h vm01.dsk.root
1.1G vm01.dsk.root
# yes |
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/loop0p1 /dev/loop1
#Crea un RAID 2, con métodos cortos e indicando el tamaño del pedazo o chunk
size:
RAID y el número de discos. Se puede cambiar el tamaño del pedazo (chunk size) por defecto (64KB) utilizando
En este ejemplo crearé un RAID-5 con cinco discos y un tamaño de chunk de 128KB:
# cat /proc/mdstat
# cat /proc/mdstat
- Montar RAID
# df -h | grep raid0
#Ver a utilización do espazo en disco do volume RAID0
/etc/mdadm.conf
- Tener uno significa que usted puede gestionar los arrays de forma ágil sin invertir tiempo en descubrir
el administrador del sistema debe invertir tiempo en examinar cada disco para determinar sus
propiedades y miembros.
Las líneas que comienzan con DEVICE especifican una lista de dispositivos que son candidatos a formar parte
del array. La líneas que comienzan con ARRAY especifican dispositivos array además de información de
Si hubiera múltipes arrays ejecutándose en el sistema, entonces mdadm generaría una linea array para cada
uno. Así que, una vez que haya construido sus arrays, puede redirigir la salida de mdadm --detail --scan a /
etc/mdadm.conf. Sólo tiene que asegurarse de crear manualmente una entrada DEVICE. Utilizando el ejemplo
Iniciar un RAID
Si se ha creado el fichero /etc/mdadm.conf, iniciar el dispositivo /dev/md0 que contiene el RAID:
# mdadm -As
Si NO se ha creado el fichero /etc/mdadm.conf, iniciar:
- Para examinar antes, y saber cómo están organizados, ya que no tenemos el fichero de configuración
(-E o --examine):
- # mdadm -E /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 00.90.00
UUID : 84788b68:1bb79088:9a73ebcc:2ab430da
Creation Time : Mon Sep 23 16:02:33 2002
Raid Level : raid0
Device Size : 17920384 (17.09 GiB 18.40 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Cuando se utiliza el modo monitor, mdadm no termina, así que tal vez quiera
envolverlo con un nohup (siga ejecutándose aunque se cierre la sesión) y un &.
# losetup -a
#Amosar tódolos dispositivos loop enlazados.
parámetros:
-d dispositivo extraíble.
-e <cifrado> Iniciar cifrado codificación.
-o <número de traducción> Establecer el número de conversión
de datos.
ROOT:
# losetup -f --show file1.img: o ficheiro file1.img poderá ser tratado
como un dispositivo por bloques, no primeiro dispositivo /dev/loop que
se atope libre
#losetup /dev/loop0 file1.img: convierte el fichero file1.img como un
dispositivo de bloque, dentro del dispositivo devloop0
Ejemplos
(1) Crear un archivo de imagen de disco vacío, creado aquí un disquete
1.44M
$ umount /tmp
$ losetup -d /dev/loop1
MOUNT
Fstab es la tabla del sistema de archivos de su sistema operativo.
$ mount –a
monta todos los dispositivos, del fichero fstab, que no están montados
monta la segunda partición del segundo disco duro (/dev/hdb2), que contiene un fs ext2,
en el directorio /temp/aux.
Con la opción –o se pueden incluir más opciones, por ejemplo, las que se especifican
en el fichero /etc/fstab: user, dev, auto, defaults, etc. Algunas de ellas interesantes son:
$umount /dev/fd1
$umount /dev/sda1
Desmontar un dispositivo usb montado en nuestro ordenador
Nota: sda1 en el caso de que este montado asi, es posible que este montado en en
sda2 por ejemplo. Siendo root usando el comando fdisk -l podemos ver si esta en
/dev/sda1 o en /dev/sda2 o en cualquier otro.
$umount /mnt/win
PRACTICA:
# mount -o loop file.iso /media/cdrom0 #Montar dispositivo iso en /media/cdrom0.
# losetup -f --show file1.raw #Enlazar a file1.raw o primeiro dispositivo loop libre (-f),
e amosando cal é (--show).
# parted --script /dev/loop0 mkpart primary 0 50% #Crear unha partición primaria co
primeiro 50% do dispositivo /dev/loop0 sen ter que acceder ao prompt de parted
# parted --script /dev/loop0 mkpart primary 50% 100% #Crear unha partición primaria
co último 50% do dispositivo /dev/loop0 sen ter que acceder ao prompt de parted
# mount | grep loop #Amosar dispositivos montados que concordan co patrón loop
# losetup -a
# for i in 1 2 ;
do
dd if=/dev/zero of=file${i}.img bs=1MiB count=100
losetup /dev/loop${i} file${i}.img
parted --script /dev/loop${i} mklabel msdos
parted --script /dev/loop${i} mkpart primary 0% 100%
mkfs.ext4 -L "particion${i}" /dev/loop${i}p1
fdisk -l /dev/loop${i}
done
# yes | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1p1 /dev/loop2p1
Entón, crearase un volume RAID 1 con 2 particións, correspondentes respectivamente aos dispositi-
vos virtuais /dev/loop1 e /dev/loop2
Si
# yes | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1p1 missing
# mkfs.ext4 -L 'RAID1' /dev/md0
Entón, crearase un volume RAID 1 con 1 partición correspondente a un dispositivo virtual /dev/lo-
op1 e á espera de engadir outro dispositivo
Si
# whoami
root
# umount /mnt/md5
# mdadm --stop /dev/md5
# sed -i '$d' /etc/mdadm/mdadm.conf
# mdadm --zero-superblock /dev/md5 /dev/sdb /dev/sdc /dev/sdd
# sed -i '$d' /etc/fstab
# touch /forcefsck
Fdisk
#fdisk /dev/sdb
#mkfs.ext4 /dev/sdb5