# 2.1 - Se repérer avec pwd, ls et cd

Le shell exécute les commandes dans un **dossier de travail courant**. Bien savoir où l'on se trouve évite de modifier le mauvais fichier.

## Afficher le dossier courant

```bash
pwd
pwd -P       # résoudre les liens symboliques dans le chemin
```

## Lister le contenu

```bash
ls
ls -l        # détails : droits, propriétaire, taille et date
ls -a        # inclure les noms commençant par un point
ls -lah      # détails, fichiers cachés et tailles lisibles
ls -lt       # trier par date de modification
ls -ltr      # plus ancien en premier
ls -ld /etc  # afficher le dossier lui-même, pas son contenu
```

Dans une sortie `ls -l`, le premier caractère indique le type : `d` pour un dossier, `-` pour un fichier ordinaire et `l` pour un lien symbolique.

## Changer de dossier

```bash
cd /var/log       # chemin absolu
cd ../lib         # dossier parent, puis lib
cd ~              # dossier personnel
cd                # identique à cd ~
cd -              # revenir au dossier précédent
```

Les raccourcis essentiels :

| Chemin | Signification |
|---|---|
| `.` | dossier courant |
| `..` | dossier parent |
| `~` | dossier personnel |
| `-` avec `cd` | dossier visité précédemment |

## Afficher une arborescence

Si la commande `tree` est installée :

```bash
tree
tree -L 2
tree -a -L 2 /etc
```

Sans `tree` :

```bash
find . -maxdepth 2 -print
```

## Noms cachés et complétion

Sous Linux, un nom commençant par `.` est caché par convention : `.bashrc`, `.config`, `.ssh`, etc. Il n'est pas secret et reste visible avec `ls -a`.

Utilisez `Tab` pour compléter les chemins. Deux pressions peuvent afficher les possibilités. Cette méthode réduit fortement les erreurs de frappe.

## Exemple de navigation contrôlée

```bash
cd /var/log
pwd
ls -lah
cd -
```

Avant une commande sensible, associer `pwd` et `ls` constitue un bon réflexe :

```bash
pwd
ls -la -- .
```

Le séparateur `--` indique la fin des options. Il protège notamment contre un fichier dont le nom commence par `-`.