====== 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 ===== 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 : *'''' le nom de l'image à écrire, par exemple "netinst.iso" ; *'''' 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= # 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