# voir toutes les infos
uname -a
# voir le hostname
uname -n
#voir le type de processeur (cible pour compilation)
uname -p
# des infos sur le CPU
cat /proc/cpuinfo
# sur la RAM
cat /proc/meminfo
#voir le type de RAM
dmidecode --type 17
===== Quelques outils pour gérer les partitions =====
# voir l'espace occupé
df -h
# voir les infos des partitions (Id, type système de fichiers, ..)
blkid # En root
# afficher les partitions (sous format arborescent, mais pas tous les id --> blkid)
lsblk # en root
# créer, supprimer, modifier des partitions (notamment le type pour pouvoir ensuite formater ntfs --> ext4 par exemple)
fdisk /dev/sda # sans préciser le numéro, on agit sur le disque)
# formater une partition avec un système de fichier particulier
mkfs.ext4 /dev/sda2
# éditer le label d'une partition
e2label /dev/sda2 LABEL_NAME
===== Occupation des ressources =====
top
# ou
htop # à installer depuis les dépôts
===== Occupation des connexions réseaux =====
bmon
----
===== Tunnel ssh =====
//Voir aussi [[ssh]]//\\
ainsi, le port_distant du serveur est accessible sur la machine locale sur le port_local
ssh user@domain.tld -L port_local:localhost:port_distant
# -L clientport:host:hostport
# je suppose que host est vis-à-vis du serveur
----
===== Mettre à jour la date et l'heure automatiquement =====
ntpdate fr.pool.ntp.org
//des explications viendront peut-être un jour//
----
===== Modifier le hostname de la machine =====
Editer le fichier ''/etc/hostname''
----
===== Screen =====
# créer un screen
screen -S nom
# se détacher d'un screen
ctrl + a + d
# lister les screens
screen -ls
# se rattacher à un screen
screen -r nom
# se rattacher à un screen avec possiblité de plusieurs vues en simultané
screen -x nom
# pour resoudre temporairement et sans reboot le [screen is terminating] lorsque screen est executé par un user non-root
# For a fix without reboot (if you can't reboot right now):
sudo mount -o remount,gid=5,mode=620 /dev/pts
----
===== blkid =====
blkid (en tant que root) liste les partitions /dev/sdxx leur LABEL, leur UUID et le type de système de fichier formaté etx4
===== dd, créer des clés usb bootable (pour installer un OS) =====
Il faut commencer par récupérer le fichier .iso de votre distribution, ensuite on puet utiliser "dd" :
dd if= of=/dev/sdx bs=4M; sync
Avec :
*'''' est le périphérique correspondant à la clef USB, par exemple /dev/sda ou /dev/sdb (et pas /dev/sda**1** ou autre partition, il faut pointer le périphérique)
*''bs=4M'' indique à dd de lire et écrire des blocs de 4 mégaoctets pour améliorer les performances. La valeur par défaut est de 512 octets, ce qui rend l'opération beaucoup plus lente ;
*''sync'' à la fin permet de s'assurer que toutes les écritures sont réalisées avant la fin de la commande.
----
===== Gestion des utilisateurs =====
## Créer un utilisateur
adduser [OPTIONS] utilisateur
# Les OPTIONS intéressantes peuvent être :
# --no-create-home : ne crée pas de répertoire home
# --ingroup nomGroupe : par défaut, l'utilisateur est créé dans un groupe
# qui porte son nom, on peut choisir de le créer dans un autre groupe
## Créer un groupe
addgroup groupe
## Ajouter un utilisateur déjà existant à un groupe déjà existant
usermod -G groupe utilisateur
## Supprimer un utilisateur
deluser [OPTIONS] utilisateur
# les OPTIONS intéressantes peuvent être :
# --remove-home : supprime le répertoire personnel
# --remove-all-files : supprime tous les fichiers possédés par l'utilisateur
# --backup : sauvegarde les fichiers ds une archive placée à la racine "/"
## Supprimer un utilisateur d'un groupe
deluser utilisateur groupe
On peut trouver la liste des utilisateurs et des groupes dans les fichiers suivants :
''/etc/passwd''
''/etc/group''
===== Gestion des droits sur les fichiers/répertoires =====
## Changer le propriétaire d'un fichier/rep
chown [-R] path
# -R : recursive, pour les dossiers et fichiers contenus ds ces dossiers
# path : nom du fichier ou du répertoire
## Changer les droits d'accès
chmod [-R] ugoa +-= rwx path
chmod [-R] 777 path
# -R : recursive, pour les dossiers et fichiers contenus ds ces dossiers
# ugoa : user group other all
# +-= : pour ajouter, enlever, fixer à
# rwx : read write execute (aussi nécessaire pour parcourir un dossier un dossier)
# path : nom du fichier ou du répertoire
----
===== firewalld (fedora) =====
## Commandes en cli via firewall-cmd
## ETAT
# pour connaitre l'état de la zone par défaut (= actuelle probablement) :
firewall-cmd --list-all
## SERVICES (= entrées pré-configurées)
# liste des services supportés
firewall-cmd --get-services
# ajouter un service (à la zone par défaut)
firewall-cmd --add-service=
===== Screenshot sous Gnome =====
C'est tout simple, il suffit d'utiliser la touche ''PRINTSCREEN'' ou ''IMPRIME ECRAN'' selon le clavier que vous possédez :
* Appuyer sur ''PRINTSCREEN'' pour prendre une capture de tout le bureau
* Appuyer sur ''ALT'' + ''PRINTSCREEN'' pour prendre une capture de la fenêtre active
* Appuyer sur ''SHIFT'' + ''PRINTSCREEN'' pour prendre une capture d'une zone délimitée avec la souris
===== Rajouter un prefixe incrémental =====
find -name "*.pdf" -printf '%f\n' | sort | gawk 'BEGIN{ a=1 }{ printf "mv \"%s\" \"EMAIL %02d - %s\"\n", $0, a++, $0}' | bash
===== rsync =====
avec ssh et un port custom, c'est tout simple :
rsync -e 'ssh -p 2222' user@server:path/file destination
# ou
rsync -port 2222 source user@destination:path/
Pour afficher des infos utiles sur quels fichiers sont transférés, et pourquoi :
rsync -ah --info=stats2,name1,del --out-format="%o %i %n" OneDrive_1_23-06-2021 backup_test_rsync/
Autres options à regarder/surveiller
rsync
--safe-links : ne pas suivre les liens hors de l'arborescence renseignée
--mkpath : crée les dossiers à la destination s'ils sont manquants, évite les erreurs et les plantages
===== cron / crontab =====
C'est un utilitaire de l'ancienne époque (avant systemd) qui permet de programmer des executions récurrentes. Il semble encore supporté à l'heure de systemd (il y a un binding ?), surement car il est assez simple et extrêmement populaire.
Les règles cron s'écrivent dans le crontab avec la commande ''crontab -e''. On peut afficher les règles écrites avec ''crontab -l''. Il y a un crontab par utilisateur, et les uns ne voient pas celles des autres.
Attention, l'interpréteur par défaut semble être ''/bin/sh'', je vous encourage donc à spécifier des chemins absolus vers vos programmes. La commande ''which zpool'' peut vous donner le chemin absolu de cette commande.
L'horaire de l'execution se programme avec m h DayOfMonth Mon DayOfWeek. on peut mettre un chiffre pour programmer l'execution à 5h par exemple. l'étoile ''*'' permet de signifier "n'importe quel" (ou tous). On peut aussi configurer toutes les 5 minutes avec ''*/5''.
Par défaut, crontab envoie des emails en cas d'erreurs. On peut rediriger les sorties vers des fichiers avec ''>> /path/to/log_file'' et même rediriger les erreurs (sorite 2) vers la sortie standard (sortie 1) avec ''2>&1''.
# exemple de crontab
# m h dom mon dow command
# ZFS : scrub = check et répare les erreurs (si possible car redondance)
30 0 * * 1 /sbin/zpool scrub Abathur >> /root/log_scrub_Abathur 2>&1
===== Micro loopback avec Pulseaudio ======
depuis un terminal (mode user, pas besoin de root)
# Activer le loopback
pactl load-module module-loopback latency_msec=1
# Désactiver le loopback
pactl unload-module module-loopback
===== Allumer/éteindre une interface réseau =====
C'est vraiment pour du debug, Linux devrait gérer ça tout seul !\\
Depuis un terminal (en mode root)
ip link set enp4s0 up
ip link set enp4s0 down