# Ubuntu

# Ubtunu - installation libcaca

lib caca est une librairie python qui, couplée à un parseur de lien permet de jouer une video dans le terminal en faisant une conversion directe du flus vidéo en Ascii art.

Bien que n'ayant aucune réelle utilité en soi, cela peut être drôle lorsque utilisé sur un honeypot par exemple.

Pour l'installer :

```bash
sudo apt update
sudo apt install python3.12-venv caca-utils mpv

```

Initialiser le venv python avec :

```
python3 -m venv venv
source venv/bin/activate
```

Installer le convertisseur de flux dans le venv :

```bash
python3 -m pip install yt-dlp
```

Pour lancer une vidéo :

```bash
mpv -vo caca <lien de video> 2>/dev/null
```

Pour interrompre la video : '<span style="color:rgb(132,63,161);">***ctrl+c***</span>'

# Ubuntu - Commandes utiles

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**I. Commandes génériques**</span>

Récupérer l’historique des commandes entrées :

```bash
history
```

Voir le répertoire courant :

```bash
pwd
```

Voir avec quel utilisateur l'on est connecté :

```bash
whoami
```

<p class="callout success">**Astuce** : Pour filtrer le résultat d'une commande, ajouter : | grep "chainedecaractèreàrechercher"</p>

---

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**II. Ressources systèmes**</span>

lancer le ressource monitor :

```shell
htop
```

voir les processus et leurs PID :

```
psaux
```

---

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**III. Disques &amp; partitions**</span>

Voir sur quels SCSI et contrôleurs sont les disques :

```shell
lsblk --scsi
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/e4rimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/e4rimage-png.png)

voir l'ensemble des chemins des disques et points de montages :

```
lsblk
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/9d9image-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/9d9image-png.png)

Voir l'utilisation des disques :

```
df -H
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/QLfimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/QLfimage-png.png)

Rescanner la capacité disque après un extend :

```shell
echo 1>/sys/class/block/sdd/device/rescan
```

 ou

```shell
echo 1>/sys/class/scsi_device/X:X:X:X/device/block/device/rescan
```

Voir le top 10 des fichiers les plus volumineux :

```
du -ah /path/to/dir | sort -rh | head -n 10
```

---

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**IV. traitement des logs**</span>

Voir un log en live :

```bash
tail -f /chemin/vers/le/log
```

Supprimer les logs plus vieux que *x* jours :

```
find /var/log/ -type f -mtime +<nbjours> -exec rm -f {} \;
```

Archiver les logs plus vieux que x jours :

```
find /var/log/ -type f -mtime +<nbjours> -exec gz {} \;
```

Voir le top 10 des fichiers les plus lourds :

```
find /var/log -type f -exec du -Sh {} + | sort -rh | head -n 10
```

Vider toutes les lignes sauf les ***n*** dernières :

```bash
echo "$(tail -1000 /var/log/messages)" > /var/log/messages
echo -e "\n### Log reduced via purge command at $(date) ###\n" >> /var/log/messages
```

---

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**V. Date / Heure**</span>

Vérifier la date et l'heure :

```bash
timedatectl
```

Trouver la timezone et la paramétrer :

```bash
timedatectl list-timezones | grep <motclédelatimezone>
timedatectl set-timezone Region/Location
```

Ou pour le Paramétrer en UTC

```
timedatectl set-timezone UTC
```

Définir la date et l'heure :

```bash
timedatectl set-time yyyy-mm-dd
timedatectl set-time hh:mm:ss
```

Changer la source NTP :

Pour changer le serveur source de temps : Editer le fichier '<span style="color: rgb(132,63,161);">***/etc/systemd/timesyncd.conf***</span>'.

Redémarrer le service ntp :

```
systemctl restart systemd-timesyncd
```

---

#### <span style="text-decoration: underline; color: rgb(35,111,161);">**VI. raccourcis VIM**</span>

copier les x prochaines lignes : xyy (exemple pour 3 lignes : 3yy)

couper les x prochaines lignes : xdd (exemple pour 3 lignes : 3dd)

coller la ou les ligne(s) copiées/coupées : p

chercher une chaîne de caractères : /chainedecaractères (pour chercher l'occurence suivante, appuyer sur 'n')

enregistrer : :w

eregistrer et quitter : :wq

quitter : :q

quitter sans enregistrer : :q!

# Ubuntu - Exemple configuration Netplan

#### <span style="text-decoration:underline;">**I. Nouveau format (ipfixe):**</span>

```
network:
    ethernets:
        eth0:
            dhcp4: false
            addresses: [192.168.1.253/24]
            nameservers:
              addresses: [8.8.8.8, 8.8.4.4]
            routes:
              - to: default
                via: 192.168.1.254
    version: 2

```

---


#### <span style="text-decoration:underline;">**II. En WIFI**</span>

```
network:
  version: 2
  wifis:
    wlp3s0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.80.222/24]
      nameservers:
        addresses: [192.168.80.1, 8.8.8.8]
      access-points:
        "bssid":
          password: "pass"
      routes:
        - to: default
          via: 192.168.80.32
```

---


#### <span style="text-decoration:underline;">**III. Avec LAGG et VLAN**</span>

```
network:
  version: 2
  renderer: NetworkManager
  bonds:
    bond0:
      dhcp4: no
      interfaces: [enp4s0,enp0s31f6]
      parameters:
        lacp-rate: fast
        mode: 802.3ad
        transmit-hash-policy: layer2
        mii-monitor-interval: 100
  ethernets:
    enp4s0: {}
    enp0s31f6: {}
  vlans:
    bond0.30:
      dhcp4: no
      addresses: [192.168.1.225/24]
      gateway4: 192.168.1.254
      id: 30
      link: bond0
      routes:
        -to: 238.0.0.0
         via: 192.168.1.225
    bond0.31:
      dhcp4: no
      addresses: [172.20.6.225/16]
      gateway4: 172.20.0.254
      id: 31
      link: bond0
    bond0.33:
      dhcp4: no
      addresses: [192.168.33.95/24]
      gateway4: 192.168.33.254
      id: 33
      link: bond0
      nameservers:
        addresses: [192.168.33.11, 192.168.33.12]

```

# Ubuntu - système de fichier

Les systèmes de fichiers linux sont la plupars du temps organisés comme suit:

**/** (la racine du système)

- **/bin** (Utilitaires et programmes pour l'utilisateur) 
    - commandes principales du systèmes
    - interpreteurs de commandes (sh, bash, ...)
    - outils d'administrations systèmes (sudo, su, passwd, ...)
    - outils de manipulation de texte (grep, sed, awk, ...)
    - outils de compressions (tar, zip, gzip, ...)
    - utilitaires réseaux (ping, ifconfig, ssh, ...)
- **/boot** (Noyaux système et fichiers associés) 
    - Images du noyau
    - Images du fichier RAM
    - secteurs de boot
- **/dev** (Composants et périphériques reconnus par le système)
- **/etc** (Fichiers de configuration du système et des services) 
    - crontab (gestionaire de tâche)
    - hosts (fichier host)
    - hostname (nom de la machine)
    - passwd (liste des utilisateurs et leurs mots de passes Hashés)
    - groups (liste des groupes et de leurs membres
    - **/etc/fstab** (montage des disques et volumes au démarrage)
- **/home** (Répertoires utilisateurs et leurs environements)
- **/lib** (Librairies partagées par les programmes et composants système)
- **/lost+founds** (Présent sur chaque point de montage, contient des fichiers de récupération en cas de problèmes)
- **/media** ( Points de montage des périphériques retirables. ex: clé usb, lecteur CD, image iso, ...)
- **/mnt** (Points de montage pour les disques ou volumes montés manuellement)
- **/opt** (Répertoire d'installation pour les logiciels 'optionnels' ou installés manuellement)
- **/proc** (Système de fichier virtuel contenant des mappages en lecture vers les fichiers du Kernel)
- **/root** (Répertoire personnel de l'administrateur système)
- **/sbin** (Utilitaires et programes systèmes, souvent réservé au sperutilisateur)
- **/tmp** (Stockage pour les fichiers temporaires. Selon la configuration, se vide à chaque redémarrage)
- **/usr** (Programmes et fichiers de support utilisés par les utilisateurs) 
    - **/usr/bin** (Programmes exécutables installés par la distribution linux utilisée)
    - **/usr/lib** (Librairies partagées pour les programes dans /usr/bin)
    - **/usr/local** (Programmes non fournis par la distribution mais nécéssitant d'être exécutés par le système)
    - **/usr/sbin** (Utilitaires d'administrations systèmes additionnels)
    - **/usr/share** (Données partagées utilisées par les programmes. Icônes, fichiers de configurations par défaut, ...) 
        - **/usr/share/doc** (Documentation des logiciels additionnels installés sur le système. Organisés par paquets)
- **/var** (Toutes les données dynamiques ou variables du systèmes et des logiciels) 
    - **/var/log** (Fichiers journaux du système et des applications)