commandes
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
commandes [2021/09/22 12:43] – luc | commandes [2025/03/01 13:14] (Version actuelle) – luc | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== 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 / | ||
+ | # sur la RAM | ||
+ | cat / | ||
+ | #voir le type de RAM, slot par slot | ||
+ | dmidecode --type 17 | ||
+ | </ | ||
+ | |||
+ | ===== Quelques outils pour gérer les partitions ===== | ||
+ | <code bash> | ||
+ | # voir l' | ||
+ | df -h | ||
+ | |||
+ | # voir les infos des partitions (Id, type système de fichiers, ..) | ||
+ | blkid # En root | ||
+ | |||
+ | # afficher les partitions (sous format arborescent, | ||
+ | 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 ===== | ||
+ | <code bash> | ||
+ | top | ||
+ | # ou | ||
+ | htop # à installer depuis les dépôts | ||
+ | </ | ||
+ | |||
+ | ===== Occupation des connexions réseaux ===== | ||
+ | < | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Tunnel ssh ===== | ||
+ | //Voir aussi [[ssh]]//\\ | ||
+ | ainsi, le port_distant du serveur est accessible sur la machine locale sur le port_local | ||
+ | <code bash> | ||
+ | ssh user@domain.tld -L port_local: | ||
+ | # -L clientport: | ||
+ | # je suppose que host est vis-à-vis du serveur | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Mettre à jour la date et l' | ||
+ | < | ||
+ | //des explications viendront peut-être un jour// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Modifier le hostname de la machine ===== | ||
+ | Editer le fichier ''/ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Screen ===== | ||
+ | |||
+ | <code bash> | ||
+ | # 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 | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | # 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, | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== 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, | ||
+ | |||
+ | < | ||
+ | dd if=< | ||
+ | </ | ||
+ | |||
+ | Avec : | ||
+ | |||
+ | *''< | ||
+ | *''< | ||
+ | *'' | ||
+ | *'' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Gestion des utilisateurs ===== | ||
+ | |||
+ | <code bash> | ||
+ | ## Créer un utilisateur | ||
+ | adduser [OPTIONS] utilisateur | ||
+ | # Les OPTIONS intéressantes peuvent être : | ||
+ | # --no-create-home | ||
+ | # --ingroup nomGroupe | ||
+ | # 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 | ||
+ | # --remove-all-files | ||
+ | # --backup | ||
+ | |||
+ | ## Supprimer un utilisateur d'un groupe | ||
+ | deluser utilisateur groupe | ||
+ | </ | ||
+ | |||
+ | On peut trouver la liste des utilisateurs et des groupes dans les fichiers suivants : | ||
+ | ''/ | ||
+ | ''/ | ||
+ | |||
+ | ===== Gestion des droits sur les fichiers/ | ||
+ | |||
+ | <code bash> | ||
+ | ## 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' | ||
+ | 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 | ||
+ | |||
+ | ## Changer les droits d' | ||
+ | find PATH -type d -exec chmod o+rx {} + | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== firewalld (fedora) ===== | ||
+ | |||
+ | <code bash> | ||
+ | ## Commandes en cli via firewall-cmd | ||
+ | |||
+ | ## ETAT | ||
+ | # pour connaitre l' | ||
+ | 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=< | ||
+ | # enlever un service : --remove-service= | ||
+ | |||
+ | |||
+ | ## PORT | ||
+ | # pour ajouter un port | ||
+ | firewall-cmd --add-port=8888/ | ||
+ | # pour enlever un port --remove-port= | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Screenshot sous Gnome ===== | ||
+ | |||
+ | C'est tout simple, il suffit d' | ||
+ | |||
+ | * Appuyer sur '' | ||
+ | * Appuyer sur '' | ||
+ | * Appuyer sur '' | ||
+ | |||
+ | |||
+ | ===== Rajouter un prefixe incrémental ===== | ||
+ | |||
+ | <code bash> | ||
+ | find -name " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== rsync ===== | ||
+ | |||
+ | avec ssh et un port custom, c'est tout simple : | ||
+ | <code bash> | ||
+ | rsync -e 'ssh -p 2222' user@server: | ||
+ | |||
+ | # ou | ||
+ | rsync -port 2222 source user@destination: | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour afficher des infos utiles sur quels fichiers sont transférés, | ||
+ | <code bash> | ||
+ | rsync -ah --info=stats2, | ||
+ | </ | ||
+ | |||
+ | Autres options à regarder/ | ||
+ | <code bash> | ||
+ | rsync | ||
+ | --safe-links : ne pas suivre les liens hors de l' | ||
+ | --mkpath | ||
+ | </ | ||
+ | |||
+ | ===== cron / crontab ===== | ||
+ | |||
+ | C'est un utilitaire de l' | ||
+ | |||
+ | Les règles cron s' | ||
+ | |||
+ | Attention, l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Par défaut, crontab envoie des emails en cas d' | ||
+ | |||
+ | < | ||
+ | # exemple de crontab | ||
+ | # m h dom mon dow | ||
+ | |||
+ | # ZFS : scrub = check et répare les erreurs (si possible car redondance) | ||
+ | 30 0 * * 1 /sbin/zpool scrub Abathur >> / | ||
+ | </ | ||
+ | |||
+ | ===== Micro loopback avec Pulseaudio ====== | ||
+ | |||
+ | depuis un terminal (mode user, pas besoin de root) | ||
+ | <code bash> | ||
+ | # Activer le loopback | ||
+ | pactl load-module module-loopback latency_msec=1 | ||
+ | |||
+ | # Désactiver le loopback | ||
+ | pactl unload-module module-loopback | ||
+ | </ | ||
+ | |||
+ | ===== Allumer/ | ||
+ | |||
+ | C'est vraiment pour du debug, Linux devrait gérer ça tout seul !\\ | ||
+ | Depuis un terminal (en mode root) | ||
+ | <code bash> | ||
+ | ip link set enp4s0 up | ||
+ | ip link set enp4s0 down | ||
+ | </ | ||
+ | |||
+ | ===== Compter des fichiers ===== | ||
+ | |||
+ | == solution 1 : avec ls == | ||
+ | |||
+ | Compter les fichiers dans un dossier et ses sous-dossiers (approx, plutôt utile pour comparer) | ||
+ | <code bash> | ||
+ | # PRE-REQUIS : avoir un ls vierge, sans alias. Au besoin, on reset l' | ||
+ | unalias ls | ||
+ | |||
+ | # La commande magique | ||
+ | ls -R < | ||
+ | |||
+ | # Notes : | ||
+ | # ls -R pour avoir la récursivité, | ||
+ | # wc -l permet de compter les nouvelles lignes dans le pipe (c'est le séparateur que renvoie ls entre 2 entrées) | ||
+ | # éviter ls -l, car des ajouts avec statistiques sont rajoutées | ||
+ | # possibile -A : pour rajouter les fichiers cachés | ||
+ | </ | ||
+ | |||
+ | == solution 2 : avec find == | ||
+ | |||
+ | '' | ||
+ | <code bash> | ||
+ | find < | ||
+ | </ | ||
+ | |||
+ | ===== Limiter la taille dans une console ===== | ||
+ | |||
+ | Parfois on veut limiter la réponse à un écran (certaines consoles n'ont pas de scroll), il suffit d' | ||
+ | |||
+ | <code bash> | ||
+ | ls -l DIR_WITH_A_LOT_OF_FILES | less | ||
+ | </ |