# Commandes linux
###### tags: `TUTO` `UNIX` `SYSTEME` `INFORMATIQUE`
[TOC]
### `more` et `cat` - Visualiser le contenu d'un fichier
:::info
`more [OPTIONS...] FILENAME`
:::
*Permet de visualiser le contenu un fichier avec pause. Utilisation de la touche **espace** pour continuer la lecture du fichier et **q** pour quitter.*
:::info
`cat [OPTIONS...] FILENAME`
:::
*Affiche le contenu du fichier FILENAME dans la sortie standard*
### `ls` - Visualiser le contenu d'un dossier
:::info
`ls [OPTIONS...] FOLDERNAME`
:::
| Option | Signification |
| -------- | -------- |
| -a | Affiche aussi les fichiers et dossiers cachés |
| -A | Affiche aussi les fichiers et dossiers cachés à l'exception de `.` et `..` |
| -h | Affiche les tailles de fichiers dans un format plus lisible |
| -l | Affiche le contenu du dossier en ligne avec, dans l'ordre, les droits, le propriétaire, le groupe, la taille, la date de modification et le nom de chaque fichier |
| -R | Liste récursive du contenu des dossiers (arborescence complète - arbre de fichiers) |
| -r | Inverser le tri du contenu des répertoires |
| -t | Affichage des fichiers par ordre de modification en commençant par le plus récent |
| -v | Trier le contenu des répertoires en fonction de la version des fichiers (ex : ls -1v) |
| -X | Trier l'affichage du contenu par ordre alphabétique des extensions (les fichiers sans extension sont affichés en premier) |
### `mkdir` - Créer un dossier
:::info
`mkdir [OPTIONS...] FOLDERNAMES...`
:::
*Il est possible de créer plusieurs dossier, séparés par un espace*
| Option | Signification |
| -------- | -------- |
| -m XXX | Permet de spécifier les droits sur le nouveau dossier (au format décimal, voir [Utilisateurs et droits](/@aprimault/unix_usr_rights) ) |
| -p | Création récursive des dossiers |
| -v | Affiche un message quand le dossier a été créé (verbose) |
| -z | SELinux default security context |
### `rm` - Supprimer un fichier/dossier
:::info
`rm [OPTIONS...] NAME`
:::
*Par défaut, ne demande pas de confirmation de suppression*
| Option | Signification |
| -------- | -------- |
| -f | Forcer l'effacement du fichier ou du dossier et désactive le fonctionnement de l'option `-i` |
| -i | Demander à l'utilisateur de confirmer l'effacement de chaque fichier |
| -r | Supprimer récursivement le contenu des répertoires ainsi que le répertoire. Option obligatoire pour supprimer un répertoire non vide |
:::warning
Variante : `rmdir [OPTIONS...] FOLDERNAME`
**Supprimer un dossier. Ne fonctionne que si le dossier est vide**
:::
### `cp` - Copier un fichier ou un dossier
:::info
`cp [OPTIONS...] NAME`
:::
| Option | Signification |
| -------- | -------- |
| -f | Force la copie d'un élément. L'absence de cette option n'empêche pas l'écrasement d'un fichier par celui copié et désactive le fonctionnement de l'option `-i` |
| -i | Demander confirmation avant d'écraser un fichier dans la destination |
| -R | Copier récursivement les répertoires |
| -v | Affiche les éléments copiés (verbose) |
:::danger
- Si un fichier est copié dans un dossier contenant un fichier de même nom, l'ancien fichier sera écrasé.
- Si un dossier est copié dans un dossier contenant un dossier de même nom, les 2 dossiers seront fusionnés récursivement. La règle précédente pour les fichiers s'applique pour les fichiers contenu dans le dossier et l'intégralité de ses sous-dossiers.
:::
### `mv` - Déplacer un fichier ou un dossier
:::info
`mv [OPTIONS...] NAME`
:::
| Option | Signification |
| -------- | -------- |
| -f | Force le déplacement d'un élément. L'absence de cette option n'empêche pas l'écrasement d'un fichier par celui copié et désactive le fonctionnement de l'option `-i` |
| -i | Demander confirmation avant d'écraser un fichier dans la destination |
| -v | Affiche les éléments déplacés (verbose) |
:::danger
- Si un fichier/dossier est déplacé dans le même dossier, il est renommé.
- Si un fichier est déplacé dans un dossier contenant un fichier de même nom, l'ancien fichier sera écrasé.
- Si un dossier est déplacé dans un dossier contenant un dossier de même nom, les 2 dossiers seront fusionnés récursivement. La règle précédente pour les fichiers s'applique pour les fichiers contenu dans le dossier et l'intégralité de ses sous-dossiers.
:::
### `cut` - Découper une chaine de caractère
:::info
`cut -fSTART[-][-END] -d'DELIMITER'`
Utilise le résultat de la sortie de la commande précédente. Voir les exemples d'utilisation.
:::
| Option | Utilisation |
| -------- | -------- |
| -d | Délimiteur. Composé d'**un seul** caractère qui sera utilisé pour découper la chaine |
| -f | Numéro de l'occurence à afficher. Peut être un intervale. (Voir les exemples d'utilisation) |
:::success
**Exemple d'utilisation :**
- `echo "a.b.c" | cut -d'.' -f2`
Sortie : `b`
- `echo "a.b.c.d.e" | cut -d'.' -f2-4`
Sortie : `b.c.d`
- `echo "a.b.c.d.e" | cut -d'.' -f2-`
Sortie : `b.c.d.e`
:::
### `pwd` - Chemin du répertoire courant
:::info
`pwd`
:::
Affiche le chemin absolu du répertoire courant.
### `cd` - Changer le répertoire courant
:::info
`cd DIRECTORYPATH`
:::
### `find` - Trouver un fichier
:::info
`find PATH -name PATTERN`
:::
- `PATH` = Dossier dans lequel rechercher
- `PATTERN` = Expression utilisée pour la recherche (expression régulière ou nom de fichier)
### `touch` - Créer un fichier
:::info
`touch FILENAME`
:::
*Si le fichier existe, met à jour sa date de modification*
### `wc` - Compter le nombre de caractères, mots ou lignes d'un fichier
:::info
`wc [OPTIONS...] FILENAME`
`... | wc [OPTIONS...]`
:::
| Option | Signification |
| -------- | -------- |
| -c | Compte les caractères du fichier (nombre d'octets) |
| -l | Compte les lignes du fichier |
| -w | Compte les mots du fichier |
### `chown` - Changer le propriétaire d'un fichier
:::info
`chown USERNAME FILENAME`
:::
:::danger
On ne peut pas reprendre un fichier donné à un autre utilisateur.
:::
### `chgrp` - Changer le groupe d'un fichier
:::info
`chgrp GROUPNAME FILENAME`
:::
### `chmod` - Changer les droits d'un fichier
:::info
`chmod DROITS FILENAME`
:::

*Page 36-38 diapo 6 pages en 1*
### `sort` - Trier des lignes et les afficher
:::info
`... | sort`
`sort [OPTIONS...] FILENAMES...`
:::
| Option | Signification |
| -------- | -------- |
| -m | Concatène les fichiers avant de trier les lignes |
### `grep` - Sélection de lignes
Voir [Expression régulières](/@aprimault/regex)
### `who` - Voir les utilisateurs connectés
:::info
`who`
:::
```bash=
# Exemple de sortie
local console Sep 25 08:14
local ttys000 Sep 29 16:17
```
### `whoami` - Affiche le pseudo de l'utilisateur courant
:::info
`whoami`
:::
```bash=
# Exemple de sortie
local
```
### `ps` - Processus
:::info
`ps`
:::
*Affiche l'état des processus en cours*
### `set` - Affichage des variables d'environnement
:::info
`set`
:::
### `alias` - Création d'un alias de commande
:::info
`alias ALIASNAME='COMMAND'`
:::
Liste des alias avec la commande `alias` seule.
### `head` - Afficher le début d'un fichier
:::info
`head -N FILENAME`
:::
*Affiche les N premières lignes d'un fichier*
### `tail` - Afficher la fin d'un fichier
:::info
`tail -N FILENAME`
:::
*Affiche les N dernières lignes d'un fichier*