Aides
Manuel d'une commande
man nom_de_la_commande
Aide d'une commande
nom_de_la_commande -h
nom_de_la_commande --help
Explications d'une commande shell
clé usb
Identifier la clé
fdisk -lCommande pour synchroniser
dd if=/dev/zero of=/dev/sdb bs=2048; syncc'est un peu long.
Autre commande donnant le même résultat en plus rapide :
wipefs -a /dev/sdb
Commandes de base
Privilèges
$ ls : liste les dossiers et fichiers du répertoire courant
$ ls -a : liste tous les dossiers et fichiers du répertoire courant en incluant les fichiers cachés
$ ls -l monFichier : affiche les privilèges
$ ls -l ~/ : liste les dossiers et fichiers du répertoire courant avec leurs privilèges
Parcourir l'arborescence
$ pwd : pour connaître le répertoire courant (print working directory)
$ cd : changer de répertoire (change directory)
$cd .. : aller au répertoire père
copier
$ cp nomDuFichierACopier nomDuFichierDeDestination
$ cp /usr/local/bin/* . : copie tous les fichiers (sauf les sous-répertoires) contenus dans le répertoire /usr/local/bin dans le répertoire courant.
copier un repertoire
r pour récursif
p pour garder les droits
cp -rp {source} {destination}
copier en excluant des répertoires
rsync -av --exclude={répertoire/exclus/} / --exclude={répertoire/exclus/} {source} {destination}
renomer
$ mv nomDuFichier.tex nouveauNomi.tex
déplacer
$ mv nomDuFichier.tex /dossierDeDestination
effacer un fichier
$ rm /dossier/nomDuFichier.tex
créer un nouveau répertoire
$ mkdir tmp
effacer un répertoire
$ rm -r tmp
-r. Cette option permet d'effacer récursivement son contenu
Archive zip
zip -r nom_de_larchive.zip dossier
unzip nom_de_larchive.zip -d dossier
Consoles virtuelles screen
Screen (GNU Screen) est un “multiplexeur de terminaux” permettant d’ouvrir plusieurs terminaux dans une même console, de passer de l’un à l’autre et de les récupérer plus tard.
Créer un nouveau “screen” en nommant la session
screen -S nom_de_la_sessionPour se rattacher à la session du screen
screen -r nom_de_la_sessionConnaître les terminaux existants
screen -ls
https://linux.goffinet.org/administration/processus-et-demarrage/consoles-virtuelles-screen/
Droits
Modiffier les droits
sudo chmod -R 775 spot_elements.
775 - Tous les droits pour le propriétaire et le groupe / Lecture et exécution pour les autres
Très pratique pour se simplifier la vie avec la gestion d'un site en développement sur un serveur local (dans le dossier media)
| Type | Propriétaire | Groupe | Les autres | |
| Droits | r w x | r w x | r - x | |
| Valeur Octale | 4+2+1=7 | 4+2+1=7 | 4+0+1=5 |
Read - Write - eXecute
Type de fichier : - pour un fichier, d pour un dossier, l pour lien symbolique
Afficher le contenu d'un répertoire en faisant la distinction entre les dossiers et les autres
➜ ls -f
Droits des autres utilisateurs
sudores
/etc/sudoers
cd /etc/sudoers.d
donner les droit à apache de la commande mv sans avoir besoin du mot de passe
sudo vim 10-www-apache
www-data ALL=(root) NOPASSWD: /bin/mv
Droits particuliers
suid, sgid, et stiky bit
Au droits “de base” précédents s'ajoutent des droits supplémentaires un peu particuliers:
- le “suid” (ou “setuid”) qui concerne les programmes:
- un programme lancé avec ce droit “suid” sera exécuté avec les droits du propriétaire du programme et non les droits de l'utilisateur qui l'a lancé (ex: /usr/bin/passwd ou /usr/bin/crontab).
- le “sgid” (ou “setgid”) qui concerne les programmes et les répertoires:
- un programme lancé avec ce droit “sgid” sera exécuté avec les droits du groupe du programme et non les droits du groupe de l'utilisateur qui l'a lancé (ex: /usr/bin/write ou /usr/bin/wall).
- un fichier créé dans un répertoire ayant le droit sgid aura pour groupe le groupe du répertoire et pas celui de l'utilisateur qui a créé le fichier.
le “stiky bit” qui concerne surtout les répertoires:
- dans un répertoire avec ce droit “stiky bit”, seuls les propriétaires des fichiers pourront les effacer (ex: /tmp ou /var/tmp).
- appliqué à un fichier, il est demandé au noyau de le conserver le plus possible en mémoire (ram ou swap). A ma connaissance, ce n'est pas utilisé sur linux.
Les droits “suid” et “sgid” sont aussi appelés “droits d'endossement”.
Dans la présentation des droits en texte, ces droits particuliers seront représentés comme suit:
- pour le suid: un “s” à la place du “x” du propriétaire comme dans “rwsr-xr-x”.
- pour le sgid: un “s” à la place du “x” du groupe comme dans “rwxr-sr-x”.
- pour le stiky bit: un “t” à la place du dernier “x” (celui du “reste du monde”) comme dans “drwxrwxrwt”.
NB: s'il n'y avait pas de droit d'exécution “x” avant d'appliquer ces droits, les lettres “s” et “t” seront mises en majuscule (“S” et “T”).
Espace disque
df -h
Fichier volumineux
Trouver les fichiers de plus de 100 Mo
find /home/www -type f -size +100M
Lister les 10 plus gros fichiers
find /home/www -type f -exec du -h {} + | sort -hr | head -n 10
Mise à jour
sury.org
met à à jour la liste des fichiers disponibles dans les dépôts APT
sudo apt-get updatemet à jour tous les paquets installés sur le système vers les dernières versions, sans ajouter de nouveaux paquets
sudo apt-get upgrademet à jour tous les paquets installés vers les dernières versions en installant de nouveaux paquets si nécessaire
sudo apt-get dist-upgradeLe fichier sources.list
sudo vim /etc/apt/sources.listdésinstaller les paquets indiqués avec leurs dépendances logicielles
sudo apt autoremove
Propriétaire
Modifier le propriétaire d'un fichier.
chown nouveau_propriétaire:nouveau_groupe mon_fichier
- R pour recursive - sous dossiers et fichiers
sudo chown -R patrick:www-data spot_elements
Recherche
Rechercher un fichier ou répertoire
find -name nom_du_fichier
find -iname nom_du_répertoire -type d- -name : Recherche d'un fichier par son nom
- -iname : Même chose que -name mais insensible à la casse
- -type : Recherche de fichier d'un certain type
- -atime : Recherche par date de dernier accès
- -mtime : Recherche par date de dernière modification
- -link : Recherche du nombre de liens au fichier
- -user : Recherche de fichiers appartenant à l'utilisateur donné
- -group : Recherche de fichiers appartenant au groupe donné
Recherche une chaîne de caractères
cat /etc/passwd | grep -i "term"
ls dir | grep "term"
grep -rin {searc}Recherche une chaîne de caractères dans des fichiers (ou depuis la console si aucun fichier n'est indiqué) ; souvent utilisé en filtre avec d'autres commandes.
Options les plus fréquentes :
- -c : Retourne le nombre de lignes au lieu des lignes elles-mêmes
- -n : Retourne les lignes préfixées par leur numéro
- -i : Insensible à la casse
- -r : Recherche récursivement dans tous les sous-répertoires ; on peut utiliser la commande rgrep
- -G : Recherche en utilisant une expression rationnelle basique (option par défaut)
- -E : Recherche en utilisant une expression rationnelle étendue ; on peut utiliser la commande egrep
- -F : Recherche en utilisant une chaîne fixe ; on peut utiliser la commande fgrep
- -v toto : Recherche les lignes qui ne contiennent pas le mot toto
Locate
Dans un terminal, locate permet de localiser immédiatement n'importe quel fichier ou répertoire présent sur votre système (y compris les fichiers cachés).
A la différence de la commande find, locate va vous donner le résultat de votre recherche immédiatement. find offre cependant beaucoup plus de possibilités
installer mllocate
sudo apt-get install mlocateindexer
sudo updatedbrechercher
locate {nom du fichier}Affiche le chemin complet d'une commande
which nom_de_la_commande
sql
exporter une base de donnée
mysqldump -u {utilisateur} -p{mot de passe} {base de donnée} {table} | gzip > {fichier de destination}
importer
mysql -h host -u user -ppass base_de_donnees < fichier_dump
ou à privilégier pour les gros fichiers
mysql -u {user] -p{pass}
USE {table_name}
source {nom_fichier.sql}
Voir les processus actif
show full processlist;Tuer un processus
KILL <pid>;
ssh
connexion ssh
ssh <nom_utilisateur>@ -p
ssh <nom_utilisateur>@ -p -i
copier un fichier
scp -P {port} -i {~/.ssh/nom clé ssh} <nom_utilisateur>@{adresse serveur}:{cible} {destination}
jumper sur un raspberry
ssh -J root@srv6.2dcom.fr pi@localhost -p [numéro du port]
Ouvrir un tunnel ssh pour partager un site local
ssh -fNR 22222:localhost:8000 -p 2282 root@adliber.2dcom.fr -i ~/.ssh/id_ed25519
Le site ser accèsible à l'adresse : https://adliber.2dcom.fr:22222
SSHFS
SSH Filesystem
SSHFS sert à monter sur son système de fichier, un autre système de fichier distant, à travers une connexion SSH, le tout avec des droits utilisateur. L'avantage est de manipuler les données distantes avec n'importe quel gestionnaire de fichier (GNOME Fichiers, Konqueror, ROX, ou même la ligne de commande), ce qui est bien plus pratique que la commande scp couplée avec SSH.
sshfs [user@]host:[dir] mountpoint [options]
// Pour démonter, vérifier que rien n'accède au point de montage (fichier ouvert ou gestionnaire de fichier), et effectuer la commande :
fusermount -u tmp
Pour monter un système de fichier en sshfs avec les droits root sans avoir la clé dans le compte root et en ayant les droits root via sudo :
ex: sur orwell
sshfs -o sftp_server="/usr/bin/sudo /usr/lib/openssh/sftp-server" web1.orwell.2dcom.fr:/ /mnt/web1.orwell/
Taille des repertoires
du -h --max-depth=1 /home/www/nom_du_répertoire| grep '[0-9]G\>' | sort -hr du -hs *Afficher la taille d’un répertoire
Pour connaitre la taille d’un répertoire le plus simple est d’utiliser les options de la suivantes :
-s (pour summarize) qui permet de faire la somme de tous les fichiers et sous répertoires présents.
et
-h (pour human-readeable) qui permet d’afficher la taille dans un multiple plus lisible (Ko, Mo, Go, To, Po)
du -sh path/dir
Utiliser find et rm pour trouver et supprimer
Supprimer les fichiers de plus de 30 jours
find . -mtime +30 -exec rm -rf {} \;
- -name : pour rechercher par nom de fichier
- -type : pour rechercher par type de fichier
- -user : pour rechercher par propriétaire
- -group : pour rechercher par groupe
- -size : pour rechercher par taille
- -atime : pour rechercher par date de dernier accès
- -mtime : pour rechercher par date de dernière modification
- -ctime : pour rechercher par date de création
- -perm : pour rechercher par permissions
- -links : pour rechercher par nombre de liens au fichier
https://www.blackcreeper.com/linux/supprimer-des-fichiers-selon-leur-anciennete-sous-linux/