# Commandes

### Supprimer le contenu d’un repertoire Linux:

On se place dans le répertoire puis:

`bruno@macbook-pro:~/Desktop/folder$ rm -rf *`

ou alors:

`bruno@macbook-pro:~/Desktop/folder$ rm -rf ton_repertoire/*`



### Copier tous les fichiers .zip dans un autre dossier:

```bash
$ cp *.zip /volume1/Backup/
```



### Déplacer un fichier vers un dossier parent:

```bash
$ mv plex.zip ../../..
```



### Connaitre le SHELL utilisé:

```bash
$ echo $SHELL
/opt/bin/bash
```



### Aller au répertoire utilisateur:

```bash
$ cd $HOME
```



### Afficher les numéros de ligne avec cat:

```bash
$ cat --number foo.c | more
$ cat -n foo.c | less
```



### Commentaire multi-lignes:

```bash
#!/bin/bash
echo "Say Something"
<<COMMENT1
    your comment 1
    comment 2
    blah
COMMENT1
echo "Do something else"

: '
 COMMENT2
 your comments here
'
```



### Connaitre la version installé:

```bash
$ cat /etc/linuxmint/info

$ cat /etc/lsb-release
```



Liste des utilisateurs et groupes:

```bash
$ cat /etc/passwd | awk -F: '{print $ 1}'

$ cat /etc/group | awk -F: '{print $ 1}'
```



### Sudo:

Crée un nouvel utilisateur avec privilèges super-utilisateur (sudo):

```bash
$ adduser <newuser>
$ usermod -aG sudo <newuser>
# ou
$ sudo gpasswd -a <newuser> sudo
Adding user <newuser> to group sudo
```

Retirer les privilèges super-utilisateur (sudo) à un utilisateur:

```bash
$ sudo deluser <username> sudo
$ sudo gpasswd -d <username> sudo

# retire <username> de tous les groups sauf de son groupe individuel
$ usermod -G "" <username>

```



### Code de sortie:

Chaque commande renvoie un *code de sortie* (quelque fois nommé *état de retour* ).

Une commande ayant réussi renvoie un 0.

Une commande ayant échoué renvoie une valeur différente de zéro qui est habituellement interprétable comme un code d'erreur.

De même, les fonctions dans un script et le script lui-même renvoient un code de sortie. La dernière commande exécutée dans la fonction ou le script détermine le code de sortie. 

À l'intérieur d'un script, une commande **exit nnn** peut être employée pour retourner un code de sortie *nnn* au shell (*nnn* doit être un nombre décimal compris entre 0 et 255).

```bash
$ hostname
silverbook.home
$ echo $?
0
$ hostnam
-bash: hostnam: command not found
$ echo $?
127
```

```bash
$ hostname
silverbook.home
bruno@SilverBook:~/.kymsu/plugins.d$ if [ $? -eq 0 ]; then echo "ok"; else echo "nok"; fi
ok
```

