Outils pour utilisateurs

Outils du site


commandes

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
commandes.txt · Dernière modification : 2024/09/19 09:14 de luc