Table des matières
Commandes utiles
Ici sont listées quelques commandes utiles avec leurs paramètres qui me sont le plus souvent utiles, on est au coeur du concept de l'aide mémoire.
Information sur le système
# 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=<fichier> of=/dev/sdx bs=4M; sync
Avec :
<fichier>
le nom de l'image à écrire, par exemple “netinst.iso” ;<périphérique>
est le périphérique correspondant à la clef USB, par exemple /dev/sda ou /dev/sdb (et pas /dev/sda1 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=<nomService> # enlever un service : --remove-service= ## PORT # pour ajouter un port firewall-cmd --add-port=8888/tcp ou udp # pour enlever un port --remove-port=
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