awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)
#!/bin/bash
while true
do
CPU=`awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)`;
echo $CPU > /tmp/cpu;
sleep 1;
done
cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
sudo lshw
🧙♂️️Un affichage plus lisible (mais moins complet) peut s'obtenir avec la commande suivante : inxi -F
description: Ordinateur Bloc-notes
produit: 20ANCTO1WW (LENOVO_MT_20AN_BU_Think_FM_ThinkPad T440p)
fabricant: LENOVO
version: ThinkPad T440p
numéro de série: PC0B9B3N
bits: 64 bits
fonctionnalités: smbios-2.7 dmi-2.7 smp vsyscall32
configuration : administrator_password=disabled chassis=notebook family=ThinkPad T440p power-on_password=disabled sku=LENOVO_MT_20AN_BU_Think_FM_ThinkPad T440p uuid=0120E439-FA54-CB11-94C3-872D38717896
*-core
description: Carte mère
produit: 20XXXTO1WW
fabricant: LENOVO
identifiant matériel: 0
version: SDXXX40697 WIN
numéro de série: L1HXXX202KH
emplacement: Not Available
*-cpu
description: CPU
produit: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
fabricant: Intel Corp.
identifiant matériel: 0
information bus: cpu@0
version: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
numéro de série: None
emplacement: CPU Socket - U3E1
taille: 2511MHz
capacité: 3500MHz
bits: 64 bits
horloge: 100MHz
fonctionnalités: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts md_clear flush_l1d cpufreq
configuration : cores=4 enabledcores=4 threads=8
*-cache:0
description: L1 cache
identifiant matériel: 2
emplacement: L1-Cache
taille: 32KiB
capacité: 32KiB
fonctionnalités: asynchronous internal write-back instruction
configuration : level=1
*-cache:1
description: L2 cache
identifiant matériel: 3
emplacement: L2-Cache
taille: 256KiB
capacité: 256KiB
fonctionnalités: asynchronous internal write-back unified
configuration : level=2
*-cache:2
description: L3 cache
identifiant matériel: 4
emplacement: L3-Cache
taille: 6MiB
capacité: 6MiB
fonctionnalités: asynchronous internal write-back unified
configuration : level=3
*-cache
description: L1 cache
identifiant matériel: 1
emplacement: L1-Cache
taille: 32KiB
capacité: 32KiB
fonctionnalités: asynchronous internal write-back data
configuration : level=1
*-memory
description: Mémoire Système
identifiant matériel: 5
emplacement: Carte mère
taille: 16GiB
*-bank:0
description: SODIMM DDR3 Synchrone 1600 MHz (0,6 ns)
produit: M471B1G73EB0-YK0
fabricant: Samsung
identifiant matériel: 0
numéro de série: 1545EF12
emplacement: ChannelA-DIMM0
taille: 8GiB
bits: 64 bits
horloge: 1600MHz (0.6ns)
*-bank:1
description: SODIMM DDR3 Synchrone 1600 MHz (0,6 ns)
produit: M471B1G73EB0-YK0
fabricant: Samsung
identifiant matériel: 1
numéro de série: 1545EEFD
emplacement: ChannelB-DIMM0
taille: 8GiB
bits: 64 bits
horloge: 1600MHz (0.6ns)
*-firmware
description: BIOS
fabricant: LENOVO
identifiant matériel: 35
version: GLET82WW (2.36 )
date: 01/19/2016
taille: 128KiB
capacité: 12MiB
fonctionnalités: pci pnp upgrade shadowing cdboot bootselect acpi usb biosbootspecification uefi
*-pci
description: Host bridge
produit: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
fabricant: Intel Corporation
identifiant matériel: 100
information bus: pci@0000:00:00.0
version: 06
bits: 32 bits
horloge: 33MHz
*-pci:0
description: PCI bridge
produit: Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller
fabricant: Intel Corporation
identifiant matériel: 1
information bus: pci@0000:00:01.0
version: 06
bits: 32 bits
horloge: 33MHz
fonctionnalités: pci pm msi pciexpress normal_decode bus_master cap_list
configuration : driver=pcieport
ressources : irq:24
*-pci:1
description: PCI bridge
produit: Xeon E3-1200 v3/4th Gen Core Processor PCI Express x8 Controller
fabricant: Intel Corporation
identifiant matériel: 1.1
information bus: pci@0000:00:01.1
version: 06
bits: 32 bits
horloge: 33MHz
fonctionnalités: pci pm msi pciexpress normal_decode bus_master cap_list
configuration : driver=pcieport
ressources : irq:25 portE/S:3000(taille=4096) mémoire:f0000000-f10fffff portE/S:c0000000(taille=301989888)
*-display
description: VGA compatible controller
produit: GK208M [GeForce GT 730M]
fabricant: NVIDIA Corporation
identifiant matériel: 0
information bus: pci@0000:02:00.0
version: a1
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress vga_controller bus_master cap_list rom
configuration : driver=nvidia latency=0
ressources : irq:44 mémoire:f0000000-f0ffffff mémoire:c0000000-cfffffff mémoire:d0000000-d1ffffff portE/S:3000(taille=128) mémoire:f1080000-f10fffff
*-multimedia
description: Audio device
produit: GK208 HDMI/DP Audio Controller
fabricant: NVIDIA Corporation
identifiant matériel: 0.1
information bus: pci@0000:02:00.1
version: a1
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list
configuration : driver=snd_hda_intel latency=0
ressources : irq:18 mémoire:f1000000-f1003fff
*-display
description: VGA compatible controller
produit: 4th Gen Core Processor Integrated Graphics Controller
fabricant: Intel Corporation
identifiant matériel: 2
information bus: pci@0000:00:02.0
version: 06
bits: 64 bits
horloge: 33MHz
fonctionnalités: msi pm vga_controller bus_master cap_list rom
configuration : driver=i915 latency=0
ressources : irq:34 mémoire:f1400000-f17fffff mémoire:e0000000-efffffff portE/S:4000(taille=64) mémoire:c0000-dffff
*-multimedia:0
description: Audio device
produit: Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
fabricant: Intel Corporation
identifiant matériel: 3
information bus: pci@0000:00:03.0
version: 06
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list
configuration : driver=snd_hda_intel latency=0
ressources : irq:43 mémoire:f1a30000-f1a33fff
*-usb:0
description: USB controller
produit: 8 Series/C220 Series Chipset Family USB xHCI
fabricant: Intel Corporation
identifiant matériel: 14
information bus: pci@0000:00:14.0
version: 04
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi xhci bus_master cap_list
configuration : driver=xhci_hcd latency=0
ressources : irq:28 mémoire:f1a20000-f1a2ffff
*-usbhost:0
produit: xHCI Host Controller
fabricant: Linux 5.4.0-90-generic xhci-hcd
identifiant matériel: 0
information bus: usb@3
nom logique: usb3
version: 5.04
fonctionnalités: usb-2.00
configuration : driver=hub slots=15 speed=480Mbit/s
*-usb:0
description: Clavier
produit: USB Receiver
fabricant: Logitech
identifiant matériel: 1
information bus: usb@3:1
version: 24.11
fonctionnalités: usb-2.00
configuration : driver=usbhid maxpower=98mA speed=12Mbit/s
*-usb:1
description: Clavier
produit: 2.4G Receiver
fabricant: Compx
identifiant matériel: 6
information bus: usb@3:6
version: 2.41
fonctionnalités: usb-1.10
configuration : driver=usbhid maxpower=100mA speed=12Mbit/s
*-usb:2 NON-RÉCLAMÉ
description: Périphérique USB générique
produit: VFS 5011 fingerprint sensor
fabricant: Validity Sensors, Inc.
identifiant matériel: 7
information bus: usb@3:7
version: 0.78
numéro de série: c193c6061516
fonctionnalités: usb-1.10
configuration : maxpower=100mA speed=12Mbit/s
*-usb:3
description: Interface sans fil Bluetooth
fabricant: Intel Corp.
identifiant matériel: b
information bus: usb@3:b
version: 0.01
fonctionnalités: bluetooth usb-2.00
configuration : driver=btusb maxpower=100mA speed=12Mbit/s
*-usb:4
description: Vidéo
produit: Integrated Camera
fabricant: SunplusIT INC.
identifiant matériel: c
information bus: usb@3:c
version: 0.03
fonctionnalités: usb-2.00
configuration : driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usbhost:1
produit: xHCI Host Controller
fabricant: Linux 5.4.0-90-generic xhci-hcd
identifiant matériel: 1
information bus: usb@4
nom logique: usb4
version: 5.04
fonctionnalités: usb-3.00
configuration : driver=hub slots=6 speed=5000Mbit/s
*-usb
description: Périphérique de stockage de masse
produit: Elements 2620
fabricant: Western Digital
identifiant matériel: 2
information bus: usb@4:2
version: 10.23
numéro de série: 575837324436314145563344
fonctionnalités: usb-3.20 scsi
configuration : driver=usb-storage maxpower=896mA speed=5000Mbit/s
*-communication
description: Communication controller
produit: 8 Series/C220 Series Chipset Family MEI Controller #1
fabricant: Intel Corporation
identifiant matériel: 16
information bus: pci@0000:00:16.0
version: 04
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi bus_master cap_list
configuration : driver=mei_me latency=0
ressources : irq:32 mémoire:f1a39000-f1a3900f
*-network
description: Ethernet interface
produit: Ethernet Connection I217-LM
fabricant: Intel Corporation
identifiant matériel: 19
information bus: pci@0000:00:19.0
nom logique: eth0
version: 04
numéro de série: 50:7b:9d:7f:f4:35
capacité: 1Gbit/s
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration : autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.13-3 latency=0 link=no multicast=yes port=twisted pair
ressources : irq:30 mémoire:f1a00000-f1a1ffff mémoire:f1a3f000-f1a3ffff portE/S:4080(taille=32)
*-usb:1
description: USB controller
produit: 8 Series/C220 Series Chipset Family USB EHCI #2
fabricant: Intel Corporation
identifiant matériel: 1a
information bus: pci@0000:00:1a.0
version: 04
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm debug ehci bus_master cap_list
configuration : driver=ehci-pci latency=0
ressources : irq:16 mémoire:f1a3e000-f1a3e3ff
*-usbhost
produit: EHCI Host Controller
fabricant: Linux 5.4.0-90-generic ehci_hcd
identifiant matériel: 1
information bus: usb@1
nom logique: usb1
version: 5.04
fonctionnalités: usb-2.00
configuration : driver=hub slots=3 speed=480Mbit/s
*-usb
description: Concentrateur USB
fabricant: Intel Corp.
identifiant matériel: 1
information bus: usb@1:1
version: 0.04
fonctionnalités: usb-2.00
configuration : driver=hub slots=6 speed=480Mbit/s
*-multimedia:1
description: Audio device
produit: 8 Series/C220 Series Chipset High Definition Audio Controller
fabricant: Intel Corporation
identifiant matériel: 1b
information bus: pci@0000:00:1b.0
version: 04
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list
configuration : driver=snd_hda_intel latency=0
ressources : irq:36 mémoire:f1a34000-f1a37fff
*-pci:2
description: PCI bridge
produit: 8 Series/C220 Series Chipset Family PCI Express Root Port #1
fabricant: Intel Corporation
identifiant matériel: 1c
information bus: pci@0000:00:1c.0
version: d4
bits: 32 bits
horloge: 33MHz
fonctionnalités: pci pciexpress msi pm normal_decode bus_master cap_list
configuration : driver=pcieport
ressources : irq:26 mémoire:f1900000-f19fffff
*-generic
description: Unassigned class
produit: RTS5227 PCI Express Card Reader
fabricant: Realtek Semiconductor Co., Ltd.
identifiant matériel: 0
information bus: pci@0000:03:00.0
version: 01
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list
configuration : driver=rtsx_pci latency=0
ressources : irq:29 mémoire:f1900000-f1900fff
*-pci:3
description: PCI bridge
produit: 8 Series/C220 Series Chipset Family PCI Express Root Port #2
fabricant: Intel Corporation
identifiant matériel: 1c.1
information bus: pci@0000:00:1c.1
version: d4
bits: 32 bits
horloge: 33MHz
fonctionnalités: pci pciexpress msi pm normal_decode bus_master cap_list
configuration : driver=pcieport
ressources : irq:27 mémoire:f1800000-f18fffff
*-network
description: Interface réseau sans fil
produit: Wireless 7260
fabricant: Intel Corporation
identifiant matériel: 0
information bus: pci@0000:04:00.0
nom logique: wlan0
version: bb
numéro de série: 58:91:cf:76:9e:f9
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration : broadcast=yes driver=iwlwifi driverversion=5.4.0-90-generic firmware=17.3216344376.0 ip=192.168.1.111 latency=0 link=yes multicast=yes wireless=IEEE 802.11
ressources : irq:33 mémoire:f1800000-f1801fff
*-usb:2
description: USB controller
produit: 8 Series/C220 Series Chipset Family USB EHCI #1
fabricant: Intel Corporation
identifiant matériel: 1d
information bus: pci@0000:00:1d.0
version: 04
bits: 32 bits
horloge: 33MHz
fonctionnalités: pm debug ehci bus_master cap_list
configuration : driver=ehci-pci latency=0
ressources : irq:23 mémoire:f1a3d000-f1a3d3ff
*-usbhost
produit: EHCI Host Controller
fabricant: Linux 5.4.0-90-generic ehci_hcd
identifiant matériel: 1
information bus: usb@2
nom logique: usb2
version: 5.04
fonctionnalités: usb-2.00
configuration : driver=hub slots=3 speed=480Mbit/s
*-usb
description: Concentrateur USB
fabricant: Intel Corp.
identifiant matériel: 1
information bus: usb@2:1
version: 0.04
fonctionnalités: usb-2.00
configuration : driver=hub slots=8 speed=480Mbit/s
*-isa
description: ISA bridge
produit: QM87 Express LPC Controller
fabricant: Intel Corporation
identifiant matériel: 1f
information bus: pci@0000:00:1f.0
version: 04
bits: 32 bits
horloge: 33MHz
fonctionnalités: isa bus_master cap_list
configuration : driver=lpc_ich latency=0
ressources : irq:0
*-sata
description: SATA controller
produit: 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
fabricant: Intel Corporation
identifiant matériel: 1f.2
information bus: pci@0000:00:1f.2
version: 04
bits: 32 bits
horloge: 66MHz
fonctionnalités: sata msi pm ahci_1.0 bus_master cap_list
configuration : driver=ahci latency=0
ressources : irq:31 portE/S:40a8(taille=8) portE/S:40b4(taille=4) portE/S:40a0(taille=8) portE/S:40b0(taille=4) portE/S:4060(taille=32) mémoire:f1a3c000-f1a3c7ff
*-serial
description: SMBus
produit: 8 Series/C220 Series Chipset Family SMBus Controller
fabricant: Intel Corporation
identifiant matériel: 1f.3
information bus: pci@0000:00:1f.3
version: 04
bits: 64 bits
horloge: 33MHz
configuration : driver=i801_smbus latency=0
ressources : irq:18 mémoire:f1a38000-f1a380ff portE/S:efa0(taille=32)
*-pnp00:00
produit: PnP device PNP0c01
identifiant matériel: 2
fonctionnalités: pnp
configuration : driver=system
*-pnp00:01
produit: PnP device PNP0c02
identifiant matériel: 3
fonctionnalités: pnp
configuration : driver=system
*-pnp00:02
produit: PnP device PNP0b00
identifiant matériel: 4
fonctionnalités: pnp
configuration : driver=rtc_cmos
*-pnp00:03
produit: PnP device LEN0071
fabricant: Lenovo Group Limited
identifiant matériel: 6
fonctionnalités: pnp
configuration : driver=i8042 kbd
*-pnp00:04
produit: PnP device LEN0036
fabricant: Lenovo Group Limited
identifiant matériel: 7
fonctionnalités: pnp
configuration : driver=i8042 aux
*-pnp00:05
produit: PnP device SMO1200
fabricant: STMicroelectronics
identifiant matériel: 8
fonctionnalités: pnp
configuration : driver=tpm_tis
*-scsi:0
identifiant matériel: 9
nom logique: scsi0
fonctionnalités: emulated
*-disk
description: ATA Disk
produit: Samsung SSD 870
identifiant matériel: 0.0.0
information bus: scsi@0:0.0.0
nom logique: /dev/sda
version: 1B6Q
numéro de série: S626NJ0R336697P
taille: 931GiB (1TB)
fonctionnalités: gpt-1.00 partitioned partitioned:gpt
configuration : ansiversion=5 guid=21d31760-00d1-4580-8407-40f3e2afecbd logicalsectorsize=512 sectorsize=512
*-volume:0
description: Windows FAT volume
fabricant: mkfs.fat
identifiant matériel: 1
information bus: scsi@0:0.0.0,1
nom logique: /dev/sda1
nom logique: /boot/efi
version: FAT32
numéro de série: 9da5-06f1
taille: 510MiB
capacité: 511MiB
fonctionnalités: boot fat initialized
configuration : FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro name=EFI System Partition state=mounted
*-volume:1
description: EFI partition
fabricant: Linux
identifiant matériel: 2
information bus: scsi@0:0.0.0,2
nom logique: /dev/sda2
nom logique: /boot
version: 1.0
numéro de série: 9d3d1bc1-1324-4311-b456-3d4ab82e1dd1
taille: 244MiB
fonctionnalités: extended_attributes ext2 initialized
configuration : filesystem=ext2 lastmountpoint=/boot modified=2021-11-17 08:53:08 mount.fstype=ext2 mount.options=rw,relatime mounted=2021-11-17 08:53:08 state=mounted
*-volume:2
description: LVM Physical Volume
fabricant: Linux
identifiant matériel: 3
information bus: scsi@0:0.0.0,3
nom logique: /dev/sda3
numéro de série: nneTrT-1234-JX8e-f56t-QQZh-5125-SRs40T
taille: 118GiB
capacité: 145GiB
fonctionnalités: multi lvm2
*-volume:3
description: Volume EXT4
fabricant: Linux
identifiant matériel: 4
information bus: scsi@0:0.0.0,4
nom logique: /dev/sda4
nom logique: /mnt/fc04d9a6-1340-4f9a-ac24-a7995f271517
version: 1.0
numéro de série: fc04d9a6-1340-4f9a-ac24-a7995f271517
taille: 785GiB
fonctionnalités: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration : created=2021-08-01 23:25:00 filesystem=ext4 lastmountpoint=/mnt/fc04d9a6-1340-4f9a-ac24-a7995f271517 modified=2021-11-17 08:53:08 mount.fstype=ext4 mount.options=rw,nosuid,nodev,relatime mounted=2021-11-17 08:53:08 name=Stockage state=mounted
*-scsi:1
identifiant matériel: a
nom logique: scsi5
fonctionnalités: emulated
*-cdrom
description: DVD-RAM writer
produit: DVDRAM GUB0N
fabricant: HL-DT-ST
identifiant matériel: 0.0.0
information bus: scsi@5:0.0.0
nom logique: /dev/cdrom
nom logique: /dev/cdrw
nom logique: /dev/dvd
nom logique: /dev/dvdrw
nom logique: /dev/sr0
version: LV20
fonctionnalités: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration : ansiversion=5 status=nodisc
*-scsi:2
identifiant matériel: b
nom logique: scsi7
fonctionnalités: emulated scsi-host
configuration : driver=usb-storage
*-disk
description: SCSI Disk
produit: Elements 2620
fabricant: WD
identifiant matériel: 0.0.0
information bus: scsi@7:0.0.0
nom logique: /dev/sdc
version: 1023
numéro de série: WX72D61AEV3D
taille: 4657GiB (5TB)
fonctionnalités: gpt-1.00 partitioned partitioned:gpt
configuration : ansiversion=6 guid=4977e774-1340-43be-b71a-9ec0411a4123 logicalsectorsize=512 sectorsize=4096
*-volume
description: Windows NTFS volume
fabricant: Windows
identifiant matériel: 1
information bus: scsi@7:0.0.0,1
nom logique: /dev/sdc1
nom logique: /media/dmeloni/Name
version: 3.1
numéro de série: 0ac0-1234
taille: 561GiB
capacité: 4657GiB
fonctionnalités: ntfs initialized
configuration : clustersize=4096 created=2021-11-01 17:04:39 filesystem=ntfs label=Name mount.fstype=fuseblk mount.options=rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096 state=mounted
*-battery
produit: Batt Device Name
fabricant: Batt Manufacture
identifiant matériel: 1
emplacement: Front
inxi -F
System: Host: dmeloni Kernel: 5.4.0-90-generic x86_64 bits: 64 Desktop: Gnome 3.36.9 Distro: Ubuntu 20.04.3 LTS (Focal Fossa)
Machine: Type: Laptop System: LENOVO product: 20ANCTO1WW v: ThinkPad T440p serial: <superuser/root required>
Mobo: LENOVO model: 20ANCTO1WW v: SDK0J40697 WIN serial: <superuser/root required> UEFI: LENOVO v: GLET82WW (2.36 )
date: 01/19/2016
Battery: ID-1: BAT0 charge: 20.6 Wh condition: 20.6/99.5 Wh (21%)
CPU: Topology: Quad Core model: Intel Core i7-4710MQ bits: 64 type: MT MCP L2 cache: 6144 KiB
Speed: 1520 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 1197 2: 1197 3: 1197 4: 1197 5: 1197 6: 1197 7: 1197
8: 1198
Graphics: Device-1: Intel 4th Gen Core Processor Integrated Graphics driver: i915 v: kernel
Device-2: NVIDIA GK208M [GeForce GT 730M] driver: nvidia v: 390.144
Display: x11 server: X.Org 1.20.11 driver: fbdev unloaded: modesetting,vesa
resolution: 1920x1080~60Hz, 1920x1080~60Hz
OpenGL: renderer: GeForce GT 730M/PCIe/SSE2 v: 4.6.0 NVIDIA 390.144
Audio: Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio driver: snd_hda_intel
Device-2: Intel 8 Series/C220 Series High Definition Audio driver: snd_hda_intel
Device-3: NVIDIA GK208 HDMI/DP Audio driver: snd_hda_intel
Sound Server: ALSA v: k5.4.0-90-generic
Network: Device-1: Intel Ethernet I217-LM driver: e1000e
IF: eth0 state: down mac: 50:7b:9d:7f:f4:35
Device-2: Intel Wireless 7260 driver: iwlwifi
IF: wlan0 state: up mac: 58:91:cf:76:9e:f9
IF-ID-1: docker0 state: down mac: 02:42:be:61:90:26
IF-ID-2: ppp0 state: unknown speed: N/A duplex: N/A mac: N/A
Drives: Local Storage: total: 5.69 TiB used: 1.05 TiB (18.4%)
ID-1: /dev/mmcblk0 vendor: Swissbit model: SF256 size: 238.30 GiB
ID-2: /dev/sda vendor: Samsung model: SSD 870 EVO 1TB size: 931.51 GiB
ID-3: /dev/sdc type: USB vendor: Western Digital model: WD Elements 2620 size: 4.55 TiB
Partition: ID-1: / size: 100.85 GiB used: 94.94 GiB (94.1%) fs: ext4 dev: /dev/dm-0
ID-2: /boot size: 236.3 MiB used: 152.5 MiB (64.5%) fs: ext2 dev: /dev/sda2
ID-3: swap-1 size: 15.88 GiB used: 163.0 MiB (1.0%) fs: swap dev: /dev/dm-1
Sensors: System Temperatures: cpu: 128.0 C mobo: 0.0 C gpu: nvidia temp: 80 C
Fan Speeds (RPM): cpu: 3437
Info: Processes: 486 Uptime: 7h 27m Memory: 15.52 GiB used: 9.64 GiB (62.1%) Shell: bash inxi: 3.0.38
cat /proc/version
Linux version 5.4.0-90-generic (buildd@lgw01-amd64-054) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #101-Ubuntu SMP Fri Oct 15 20:00:55 UTC 2021
ps aux | grep [n]om_du_processus
📖️️Sources :
*http://shaarli.guiguishow.info/?w5t54A
*https://dukeart.netlib.re/links/?YZrrPQ
📖️️Tout ce qui suit est une copie partielle (et parfois corrigée) de la page suivante : https://wiki.debian.org/fr/SSH
hôte_distant=<l'ordinateur à distance>
utilisateur_distant=<nom d'utilisateur sur $hôte_distant>
apt install openssh-client
apt install openssh-server
rm /etc/ssh/ssh_host_*
dpkg-reconfigure openssh-server
ssh $utilisateur_distant@$hôte_distant
ssh $hôte_distant
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub $utilisateur_distant@$hôte_distant
💡️L'utilisation de la dernière version disponible du paquet openssh-server permet de se protéger contre l'utilisation des failles de sécurité connues.
💡️Activez l'authentification par les keys SSH uniquement avec des passphrases (ie. désactivez l'authentification par le seul mot de passe).
💡️Vous pouvez utiliser fail2ban qui est un logiciel de surveillance de fichiers de journal bannissant automatiquement une adresse IP après un certain nombre prédéfini de tentatives de connexion échouées. Il permet de se prémunir automatiquement des attaques par force brute.
📖️️De bonnes pratiques pour l'utilisation de SSH se trouvent à https://lackof.org/taggart/hacking/ssh/
service ssh restart
📖️️Les options AllowUsers et AllowGroups n'amélioreront pas la sécurité d'un serveur SSH. Mais, dans certains cas, leur utilisation permet de résister un peu plus longtemps lors des attaques par force brute.
💡️L'utilisation de la dernière version disponible du paquet openssh-client permet de se protéger contre l'utilisation des failles de sécurité connues.
💡️Utilisez l'authentification par les clés SSH plutôt que par le mot de passe.
💡️Ajoutez des mots de passe robustes à vos clés SSH. Cela réduit les risques d'attaque par force brute.
📖️️Allez + loin : https://wiki.debian.org/fr/SSH
scp source_file target_file
scp local_file username@XXX.0.0.1:/tmp/server_file
💡️Pour copier un dossier, il suffit ajouter l'option -r à la commande scp.
scp username@XXX.0.0.1:/tmp/server_file local_file
rsync -P -e ssh username@XXX.0.0.1:/tmp/server_file local_file
🧙♂️️Pour copier un fichier, il est donc possible de n'utiliser que rsync.
Cependant, la synchronisation étant bidirectionnelle entre les serveurs, cela peut être dangereux car les fichiers du serveur source peuvent tout à fait être effacés par la manoeuvre.
rm fichier.txt
rm -r dossier
💡️On peut également utiliser -R ou --recursive à la place de -r
rm -d dossier_vide
💡️On peut également utiliser la version longue --dir à la place de -d
💡️La commande rmdir existe également.
# cd dossier;
rm *
# RETOUR :
# -bash: /bin/rm: Argument list too long
# cd dossier;
ls | xargs rm
💡️Voici une version assez agressive mais très efficace qui utilise les options -r et -f : `ls | xargs rm -rf`
# cd dossier;
ls | while read param
do
rm param
done
rm fichier_1 fichier_2;
# touch fichier_1 fichier_3 fichier_4
# denis@denis:/tmp/test $ ls
# fichier_1 fichier_3 fichier_4
rm fichier_1 fichier_2 fichier_3
# RETOUR :
# rm: impossible de supprimer 'fichier_2': Aucun fichier ou dossier de ce type
# $? vaut 1 : erreur
# Le ls retournera cela
# fichier_4
# touch fichier_1 fichier_3 fichier_4
# denis@denis:/tmp/test $ ls
# fichier_1 fichier_3 fichier_4
rm -f fichier_1 fichier_2 fichier_3
# RETOUR : vide
# $? vaut 0 : ok
# Le ls retournera toujours cela
# fichier_4
rm /etc/sudoers
# RETOUR :
# rm: supprimer '/etc/sudoers' qui est protégé en écriture ? y
# rm: impossible de supprimer '/etc/sudoers': Permission non accordée
# $? vaut 1 : erreur
rm -f /etc/sudoers
# RETOUR :
# rm: impossible de supprimer '/etc/sudoers': Permission non accordée
# $? vaut 1 : erreur
touch fichier_1 fichier_2 fichier_3
rm -i fichier_*
# RETOUR :
# rm : supprimer 'fichier_1' du type fichier vide ? n
# rm : supprimer 'fichier_2' du type fichier vide ? n
# rm : supprimer 'fichier_3' du type fichier vide ? n
💣️Les options --interactive (-i, -I) n'ont aucun effet si l'option --force (-f) est présente.
touch fichier_1 fichier_2 fichier_3 fichier_4 && mkdir dossier;
rm -rI
# RETOUR :
# rm : supprimer 5 arguments récursivement ? y
rm: impossible de supprimer 'dossier': est un dossier
rm -rf --no-preserve-root /
🧙♂️️Note : n'ayant pas de VM sous la main pour effectuer cette commande, je vous laisse découvrir son résultat ;-).
📖️️La sécurité sur le root existerait depuis 2006 sur les OS GNU : https://en.wikipedia.org/wiki/Rm_%28Unix%29#Protection_of_the_filesystem_root.
rm --version
rm (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Paul Rubin, David MacKenzie, Richard M. Stallman,
and Jim Meyering
💣️Ne pas utiliser -v (équivalent à --verbose) pour afficher la version de rm.
Member "coreutils-9.0/ChangeLog" (24 Sep 2021, 328480 Bytes) of package /linux/misc/coreutils-9.0.tar.xz:
1615 2020-11-26 Nishant Nayan <nishant.nayan@oracle.com>
1616
1617 rm: do not skip files upon failure to remove an empty dir
1618 When removing a directory fails for some reason, and that directory
1619 is empty, the rm_fts code gets the return value of the excise call
1620 confused with the return value of its earlier call to prompt,
1621 causing fts_skip_tree to be called again and the next file
1622 that rm would otherwise have deleted to survive.
1623
1624 * src/remove.c (rm_fts): Ensure we only skip a single fts entry,
1625 when processing empty dirs. I.e. only skip the entry
1626 having successfully removed it.
1627 * tests/rm/empty-immutable-skip.sh: New root-only test.
1628 * tests/local.mk: Add it.
1629 * NEWS: Mention the bug fix.
1630 Fixes https://bugs.gnu.org/44883
4310 2018-06-21 Pádraig Brady <P@draigBrady.com>
4311
4312 tests: provide an option to relax the need for gdb
4313 * tests/rm/r-root.sh: gdb provides extra protection,
4314 but is not strictly necessary. So provide an option
4315 for maintainers to relax the requirements.
4316
4317 rm: add --preserve-root=all to protect mounts
4318 * src/remove.c (rm_fts): With the --preserve-root=all extension,
4319 reject command line arguments that are mount points.
4320 * src/remove.h (rm_options): Add preserve_all_root to store config.
4321 * src/mv.c (rm_option_init): Init preserve_all_root to false.
4322 * src/rm.c (main): Init preserve_all_root as per option.
4323 (usage): Describe the new option.
4324 * src/remove.c (rm_fts): Lookup the parent device id,
4325 and reject the cli argument if a separate file system.
4326 * tests/rm/one-file-system.sh: Add a test case.
4327 * NEWS: Mention the new feature.
7692 2016-10-04 Pádraig Brady <P@draigBrady.com>
7693
7694 rm: disallow --n alias for --no-preserve-root
7695 * src/rm.c (main): Ensure the full --no-preserve-root
7696 option is specified, rather than allowing --n etc.
7697 * tests/rm/r-root.sh: Add a test case.
7698 * NEWS: Mention the change in behavior.
7699
7700 Improved by Jim Meyering.
7701 Fixes http://bugs.gnu.org/24604
3,4 GiB [
📖️️Les commandes proviennent du stackoverflow 130802(https://unix.stackexchange.com/a/130802).
journalctl --disk-usage
Journals take up 3.4G on disk.
sudo vim /etc/systemd/journald.conf
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=yes
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#ReadKMsg=yes
SystemMaxUse=50M
sudo systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
sudo systemctl restart systemd-journald.service
du -sh /var/log/journal
# 49M /var/log/journal
journalctl --disk-usage
sudo du -sh /var/cache/apt
#AVANT:
#sudo du -sh /var/cache/apt
#490M /var/cache/apt
sudo apt-get clean
#APRES:
#sudo du -sh /var/cache/apt
#364K /var/cache/apt
📖️️Voici un article plus complet sur le sujet : https://alanhollis.com/php/solving-bugs-phpunit-git-bisect/
git bisect run phpunit tests/MyClassTest.php
git cherry-pick {hash}
git rebase -i {hash}
git reflog -20; // affiche les 20 dernières opérations d'écriture
git checkout c2f72e1; // Revient via la signature d'une opération à ce moment précis
git checkout branche
git reflog -30
git reset --hard {hash du commit qui fonctionnait}
git push -f
git config --global alias.st status;
git config --global alias.lg "log --graph --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --decorate=full";
vim ~/.gitconfig
[alias]
st = status
lg = log --graph --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --decorate=full
git config --global credential.helper store
📖️️D'autres solutions : https://stackoverflow.com/a/67360592
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa
Your public key has been saved in /home/test/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:+Rdff3173/p0Q test@PC
The key's randomart image is:
+---[RSA 3072]----+
| ..o. o.+o*|
| =. o.+ Xo|
| + o..o Xo |
| o.E++.o=.|
+----[SHA256]-----+
timedatectl
Local time: Mon 2022-05-23 10:46:39 CEST
Universal time: Mon 2022-05-23 08:46:39 UTC
RTC time: Mon 2022-05-23 08:46:40
Time zone: Europe/Paris (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
sudo timedatectl set-ntp no
sudo timedatectl set-time '2015-12-01'
date
Réponse:
Tue 01 Dec 2015 12:00:02 AM CET
openssl enc -aes-256-cbc -pbkdf2 -in toto.enc -out toto.txt
openssl enc -aes-256-cbc -pbkdf2 -in toto.txt -out toto.encrypted -pass pass:mot_de_passe
openssl enc -aes-256-cbc -pbkdf2 -d -in toto.encrypted -out toto.txt -pass pass:mot_de_passe
#!/bin/bash
if [ -z "$1" ]
then
echo "Le premier argument doit etre un mot de passe"
exit 1;
fi
for i in $(find -name \*.txt); do
echo "ENCRYPT: $i";
openssl enc -aes-256-cbc -pbkdf2 -in $i -out $i.encrypted -pass pass:"$1"
if [ $? -eq 0 ]
then
rm $i;
else
rm $i.encrypted;
fi
done
#!/bin/bash
if [ -z "$1" ]
then
echo "Le premier argument doit etre un mot de passe"
exit 1;
fi
for i in $(find -name \*.encrypted); do
FILE_OUT_NAME="${i/\.encrypted/}"
echo "DECRYPT: $FILE_OUT_NAME";
openssl enc -d -aes-256-cbc -pbkdf2 -in $i -out "$FILE_OUT_NAME" -pass pass:"$1"
if [ $? -eq 0 ]
then
rm "$i";
else
rm "$FILE_OUT_NAME";
fi
done
~/.local/share/nautilus/scripts
#!/bin/bash
CURRENT_DIR=`pwd`
CURRENT_FILE_PATH="${CURRENT_DIR}/${1}"
echo $CURRENT_FILE_PATH > /tmp/nautilus_script.txt
chmod +x ~/.local/share/nautilus/scripts/test.sh
#!/bin/bash
CURRENT_DIR=`pwd`
CURRENT_FILE_PATH="${CURRENT_DIR}/${1}"
if [[ -f $CURRENT_FILE_PATH ]]
then
ENCRYPTED_FILE_PATH="${CURRENT_FILE_PATH}.encrypted"
ENCRYPTION_PASSWORD="SECRET"
openssl enc -aes-256-cbc -pbkdf2 -in "${CURRENT_FILE_PATH}" -out "${ENCRYPTED_FILE_PATH}" -pass pass:$ENCRYPTION_PASSWORD
if [ $? -eq 0 ]
then
rm "${CURRENT_FILE_PATH}"
else
rm "${ENCRYPTED_FILE_PATH}";
fi
fi
#!/bin/bash
CURRENT_DIR=`pwd`
CURRENT_FILE_PATH="${CURRENT_DIR}/${1}"
if [[ -f $CURRENT_FILE_PATH ]]
then
FILE_OUT_NAME="${CURRENT_FILE_PATH/\.encrypted/}"
ENCRYPTION_PASSWORD="SECRET"
openssl enc -d -aes-256-cbc -pbkdf2 -in "${CURRENT_FILE_PATH}" -out "${FILE_OUT_NAME}" -pass pass:$ENCRYPTION_PASSWORD
if [ $? -eq 0 ]
then
rm "${CURRENT_FILE_PATH}"
else
rm "${FILE_OUT_NAME}";
fi
fi
chmod +x ~/.local/share/nautilus/scripts/decrypt ~/.local/share/nautilus/scripts/encrypt
💣️Limite: la valeur de la variable $ENCRYPTION_PASSWORD est facilement trouvable.
💣️Ce script ne fonctionne que pour des fichiers simples, pas avec des dossiers.
💡️Pour chiffrer un dossier, l'astuce est de le zipper avant de le chiffrer.
Voir ici : https://www.reddit.com/r/crypto/comments/4g5i9q/how_do_i_use_openssl_to_encrypt_a_folder/
sudo lshw -class disk
sudo find . -type f -size +500000k -printf "%p %s\n"
sudo dd if=/dev/sdc of="/tmp/out.iso" bs=100M
sudo blkid
sudo dd bs=4M if=/tmp/windows.iso of=/dev/sdd1 conv=fdatasync status=progress
comm -1 -2 /tmp/file_1.txt /tmp/file_2.txt
tar cz folder_to_encrypt | openssl enc -aes-256-cbc -e > out.tar.gz.enc
find . -cmin -120 | tar cz --files-from=- | openssl enc -aes-256-cbc -e > out.tar.gz.enc
find . -newermt "2021-12-06 16:20" ! -newermt "2021-12-07" | tar cz --files-from=- | openssl enc -aes-256-cbc -e > out.tar.gz.enc
📖️️Aller + loin avec le find sur cette page https://aide-memoire.blog-machine.info/linux-trouver-tous-les-fichiers-modifies-a-une-date-precise-et-meme-a-une-heure-precise/
openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
gpg --encrypt out.tar.gz
📖️️Source : https://superuser.com/a/162628
sudo nm-connection-editor
sudo service network-manager restart
sudo lshw -C network
*-network
description: Interface réseau sans fil
produit: Wireless 7260
fabricant: Intel Corporation
identifiant matériel: 0
information bus: pci@0000:04:00.0
nom logique: wlan0
version: bb
numéro de série: 58:91:cf:76:9e:f9
bits: 64 bits
horloge: 33MHz
fonctionnalités: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration : broadcast=yes driver=iwlwifi driverversion=5.4.0-90-generic firmware=17.3216344376.0 ip=192.168.1.111 latency=0 link=yes multicast=yes wireless=IEEE 802.11
ressources : irq:33 mémoire:f1800000-f1801fff
💡️Voir ici
📖️️Aller plus loin : https://fr.wikipedia.org/wiki/Wi-Fi
💣️Cette page sera bientôt supprimée.
bash bzip2recover date egrep hciconfig lowntfs-3g mv ntfscmp pax red ss systemd-notify uncompress zgrep
brltty bzless dd false hostname ls nano ntfsfallocate paxcpio rm static-sh systemd-sysusers unicode_start zless
bunzip2 bzmore df fgconsole ip lsblk nc ntfsfix paxtar rmdir stty systemd-tmpfiles vdir zmore
busybox cat dir fgrep journalctl lsmod nc.openbsd ntfsinfo pidof rnano su systemd-tty-ask-password-agent wdctl znew
bzcat chacl dmesg findmnt kbd_mode mkdir netcat ntfsls ping run-parts sync tar which
bzcmp chgrp dnsdomainname fuser keyctl mknod netstat ntfsmove ping4 sed systemctl tempfile ypdomainname
bzdiff chmod domainname fusermount kill mktemp networkctl ntfsrecover ping6 setfacl systemd touch zcat
bzegrep chown dumpkeys getfacl kmod more nisdomainname ntfssecaudit plymouth setfont systemd-ask-password true zcmp
bzexe chvt echo grep ln mount ntfs-3g ntfstruncate ps setupcon systemd-escape udevadm zdiff
bzfgrep cp ed gunzip loadkeys mountpoint ntfs-3g.probe ntfsusermap pwd sh systemd-hwdb ulockmgr_server zegrep
bzgrep cpio efibootdump gzexe login mt ntfscat ntfswipe rbash sh.distrib systemd-inhibit umount zfgrep
bzip2 dash efibootmgr gzip loginctl mt-gnu ntfscluster openvt readlink sleep systemd-machine-id-setup uname zforce
rm fichier.txt
rm -r dossier
# Notes:
# On peut également utiliser -R ou --recursive à la place de -r
rmdir dossier
cd dossier;
ls | xargs rm -f
cd dossier;
ls | while read param
do
rm -f param
done
GET https://www.domain.com/xxx/aaa | grep -aoP "/xxx/[\-a-z0-9]+.html" | sort | uniq
# Résultat :
# …
# /xxx/aaa-111.html
# /xxx/bbb-222.html
# /xxx/ccc-333.html
head -20 /tmp/fichier.txt
tail -20 /tmp/fichier.txt
tail -f access.log
cp -RP source_directory target_directory
http://localhost:8096/web/index.html#!/dashboardgeneral.html
Chemin du cache :
/mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/cache
Chemin des métadonnées :
/mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/metadata
Emplacement du transcodeur :
/mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/transcodes
sudo mkdir /mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin
sudo cp -r /var/lib/jellyfin/metadata /mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/metadata
sudo cp -r /var/cache/jellyfin /mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/cache
mkdir /mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin/transcodes
sudo chmod -R 777 /mnt/fc14d9a6-2ec9-4f9a-ac24-a7995f271517/jellyfin
sudo service jellyfin restart
bouton : Actualiser toutes les médiathèques
sudo dpkg -i jellyfin-media-player_1.6.1-1_amd64-buster.deb
Sélection du paquet jellyfin-media-player précédemment désélectionné.
(Lecture de la base de données... 319213 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de jellyfin-media-player_1.6.1-1_amd64-buster.deb ...
Dépaquetage de jellyfin-media-player (1.6.1-1) ...
dpkg: des problèmes de dépendances empêchent la configuration de jellyfin-media-player :
jellyfin-media-player dépend de libmpv1 ; cependant :
Le paquet libmpv1 n'est pas installé.
jellyfin-media-player dépend de libqt5webengine5 ; cependant :
Le paquet libqt5webengine5 n'est pas installé.
jellyfin-media-player dépend de libcec4 | libcec6 ; cependant :
Le paquet libcec4 n'est pas installé.
Le paquet libcec6 n'est pas installé.
jellyfin-media-player dépend de qml-module-qtwebengine ; cependant :
Le paquet qml-module-qtwebengine n'est pas installé.
jellyfin-media-player dépend de qml-module-qtwebchannel ; cependant :
Le paquet qml-module-qtwebchannel n'est pas installé.
sudo apt install libmpv1
sudo apt --fix-broken install
screen -S nom_de_la_session
sleep 4555555;
screen -list
screen -r nom_de_la_session
📖️️Source: https://doc.ubuntu-fr.org/screen
nohup mon_programme &
find . -type f -size +200M -printf "%p %s\n"
du -hms /home/user/* | sort -nr | head
ncdu /
chmod +x sort-photorec.sh
./sort-photorec.sh /tmp/photorec-disk
php dedoublonne.php /tmp --no-dry
<?php
if (!isset($argv[1])) {
exit('Dir argument is needed'.PHP_EOL);
}
$testMode = true;
foreach($argv as $argument) {
if ($argument === '--no-dry') {
$testMode = false;
}
}
$dirPath = $argv[1];
if (!is_dir($dirPath)) {
exit('The dir does not exist'.PHP_EOL);
}
$dirPath = preg_replace('#/?$#', '', $dirPath);
function findFiles($dirPath)
{
$files = array();
foreach(scandir($dirPath) as $currentFileName) {
if ($currentFileName == '.' || $currentFileName == '..') {
continue;
}
$currentFilePath = sprintf('%s/%s', $dirPath, $currentFileName);
if (is_dir($currentFilePath)) {
$files = array_merge(findFiles($currentFilePath), $files);
} else {
$currentFileSize = filesize($currentFilePath);
$files[] = [
'path' => $currentFilePath,
'name' => $currentFileName,
'size' => $currentFileSize,
];
}
}
return $files;
}
$files = findFiles($dirPath);
usort($files, function($fileA, $fileB) {
return $fileA['size'] >= $fileB['size'];
});
$lastFile = null;
$filePoolBySize = array();
$lastFileSize = null;
$nbDeletedFiles = 0;
foreach ($files as $currentFile) {
$currentFileIsDeleted = false;
if (!empty($filePoolBySize[$currentFile['size']])) {
foreach ($filePoolBySize[$currentFile['size']] as $lastFile) {
$currentHash = hash_file('md5', $currentFile['path']);
$lastHash = hash_file('md5', $lastFile['path']);
if ($currentHash === $lastHash) {
if ($testMode === false) {
unlink($currentFile['path']);
}
$nbDeletedFiles++;
$currentFileIsDeleted = true;
echo sprintf('Suppression doublon "%s"'.PHP_EOL, $currentFile['path']);
break;
}
}
}
if ($currentFileIsDeleted == false) {
$filePoolBySize[$currentFile['size']][] = $currentFile;
$lastFile = $currentFile;
}
}
echo sprintf('Nb fichiers : %s'.PHP_EOL, count($files));
echo sprintf('Nb doublons supprimés : %s'.PHP_EOL, $nbDeletedFiles);
echo sprintf('Nb fichiers restants : %s'.PHP_EOL, count($files) - $nbDeletedFiles);
📖️️Plus d’astuces : https://www.youtube.com/watch?v=MAPbo8cNkJ8
echo "texte" > /tmp/stdout.txt;
#équivaut à echo "texte" 1> /tmp/stdout.txt
cat file_not_found 2> /tmp/stderr.txt
cat file_not_found 1> /tmp/stdout.txt 2> /tmp/stderr.txt
cat file_not_found &> /tmp/stdouterr.txt
cat project_access.log | grep GET | wc -l
# Notes:
# cat project_access.log : affiche sur le stdout le contenu du fichier
# grep GET : filtre chaque ligne du stdout pour n’afficher que celles contenant le mot GET
# wc -l : compte le nombre de lignes retournées
cat project_access.log | grep GET > GET.log
composer install && bin/console cache:clear
ls /tmp &>/dev/null && echo "Fichier trouvé";
# Note:
# Le /dev/null permet de masquer visuellement les flux stdout/stderr du ls.
echo “coucou”;
echo $?; // affiche 0
cat file_not_found;
echo $?; // affiche 1
echo coucou; cat file_not_found &>/dev/null; echo yahou;
# Résultat : les deux messages s'affichent malgré la commande du milieu qui a échoué.
>coucou
>yahou
echo coucou && cat file_not_found &>/dev/null && echo yahou;
# Résultat : Seul le premier message s'affiche car le programme s’arrête à cause du cat qui plante.
>coucou