← Retour aux tutoriels

Guide débutant : comprendre les bases (pas à pas)

débutantguidebasesapprendretutoriel

Guide débutant : comprendre les bases (pas à pas)

Ce tutoriel est conçu pour quelqu’un qui débute et qui veut comprendre les bases de l’informatique “pratique” : comment fonctionne un système, comment se repérer dans un terminal, manipuler des fichiers, installer des logiciels, comprendre le réseau, et automatiser des tâches simples. L’objectif n’est pas d’apprendre “par cœur”, mais de comprendre ce que vous faites.

Hypothèse : vous utilisez Linux (Ubuntu/Debian) ou macOS. Sur Windows, beaucoup de concepts sont identiques, mais les commandes changent (PowerShell, CMD). Si vous êtes sur Windows, vous pouvez suivre avec WSL (Windows Subsystem for Linux) pour avoir un environnement Linux.


1) Les notions fondamentales : système, programmes, fichiers

1.1 Système d’exploitation (OS) : le chef d’orchestre

Un ordinateur exécute des programmes, mais ces programmes ont besoin d’un intermédiaire pour accéder au matériel (disque, réseau, écran). Cet intermédiaire, c’est le système d’exploitation (Linux, macOS, Windows).

Le rôle de l’OS :

1.2 Fichiers et dossiers : une arborescence

Vos données sont organisées en répertoires (dossiers) et fichiers. Sur Linux/macOS, tout part de la racine /.

Quelques répertoires importants (Linux) :

Comprendre l’arborescence est crucial : quand vous lancez une commande, elle s’exécute dans un répertoire courant.


2) Le terminal : votre outil le plus puissant

2.1 Pourquoi apprendre le terminal ?

Le terminal (ou “shell”) permet :

Sur Linux/macOS, le shell est souvent bash ou zsh.

2.2 Se repérer : où suis-je ?

Ouvrez un terminal, puis :

pwd

Listez le contenu :

ls

Liste détaillée :

ls -l

Inclure les fichiers cachés (commencent par .) :

ls -la

Les options (comme -l, -a) modifient le comportement d’une commande. Beaucoup de commandes suivent ce modèle.

2.3 Naviguer

Aller dans un dossier :

cd Documents

Revenir au dossier précédent :

cd ..

Aller directement à votre “home” :

cd ~

Revenir au répertoire précédent (très pratique) :

cd -

3) Manipuler fichiers et dossiers (sans peur)

3.1 Créer dossiers et fichiers

Créer un dossier :

mkdir projet

Créer des dossiers imbriqués d’un coup :

mkdir -p projet/src projet/data

Créer un fichier vide :

touch projet/README.md

touch sert aussi à mettre à jour la date de modification d’un fichier.

3.2 Copier, déplacer, renommer

Copier un fichier :

cp projet/README.md projet/README.copy.md

Copier un dossier (récursif) :

cp -r projet projet_backup

Déplacer / renommer :

mv projet/README.copy.md projet/docs.md

3.3 Supprimer (attention)

Supprimer un fichier :

rm projet/docs.md

Supprimer un dossier et son contenu :

rm -r projet_backup

Supprimer “sans demander” (dangereux) :

rm -rf projet_backup

Compréhension importante : rm supprime réellement (pas de corbeille dans beaucoup de contextes). Avant un rm -r, vérifiez avec ls ce que vous visez.


4) Lire et éditer du texte

4.1 Afficher le contenu

Afficher un fichier :

cat projet/README.md

Afficher page par page :

less /var/log/system.log

Dans less :

Afficher le début / la fin :

head -n 20 projet/README.md
tail -n 20 projet/README.md

Suivre un fichier qui s’actualise (logs) :

tail -f /var/log/syslog

4.2 Éditer : nano (simple) ou vim (puissant)

Éditer avec nano :

nano projet/README.md

vim (si vous voulez apprendre plus tard) :

vim projet/README.md

5) Comprendre permissions et propriété (un pilier)

Sur Linux/macOS, chaque fichier a :

Regardez :

ls -l

Exemple de sortie typique :

-rw-r--r--  1 alice staff  1200 Mar 22 10:00 README.md

Décomposition :

5.1 Modifier les permissions : chmod

Ajouter le droit d’exécution à un script :

chmod +x script.sh

Retirer l’écriture pour “others” :

chmod o-w fichier.txt

Notation numérique (souvent vue) :

Exemple : propriétaire tout, groupe lecture, autres lecture :

chmod 744 script.sh

5.2 Modifier propriétaire/groupe : chown

(En général nécessite sudo)

sudo chown alice:staff fichier.txt

6) Installer des logiciels (gestion de paquets)

6.1 Sur Debian/Ubuntu : apt

Mettre à jour la liste des paquets :

sudo apt update

Mettre à jour les paquets installés :

sudo apt upgrade

Installer un paquet :

sudo apt install curl git

Chercher un paquet :

apt search nginx

Afficher des infos :

apt show git

6.2 Sur macOS : Homebrew (si installé)

Installer Homebrew (commande officielle à vérifier sur le site brew.sh), puis :

brew update
brew install git curl

Comprendre l’idée : un gestionnaire de paquets télécharge, vérifie, installe et met à jour des logiciels de manière cohérente.


7) Processus : voir et contrôler ce qui tourne

7.1 Lister les processus

Afficher un aperçu :

ps

Afficher tous les processus :

ps aux

Voir en temps réel :

top

Sur beaucoup de Linux, htop est plus confortable (si installé) :

htop

7.2 Terminer un processus

Supposons qu’un programme se bloque. Trouvez son PID :

ps aux | grep nom_du_programme

Puis :

kill PID

Si ça ne suffit pas (à utiliser avec prudence) :

kill -9 PID

Compréhension :


8) Entrées/sorties, pipes et redirections (la magie du shell)

C’est l’une des idées les plus puissantes : une commande produit une sortie (stdout) que vous pouvez rediriger ou enchaîner.

8.1 Rediriger vers un fichier

Écraser un fichier :

echo "Bonjour" > message.txt

Ajouter à la fin :

echo "Deuxième ligne" >> message.txt

8.2 Utiliser un pipe |

Envoyer la sortie d’une commande vers une autre :

ls -la | less

Chercher dans une sortie :

ps aux | grep ssh

Compter des lignes :

ls -1 | wc -l

8.3 Erreurs (stderr) et redirections

Rediriger les erreurs vers un fichier :

commande_inexistante 2> erreurs.log

Rediriger sortie + erreurs :

commande 1> sortie.log 2> erreurs.log

Ou tout ensemble :

commande > tout.log 2>&1

9) Rechercher : fichiers, contenu, commandes

9.1 Trouver un fichier : find

Chercher un fichier par nom dans un dossier :

find . -name "README.md"

Chercher par extension :

find . -type f -name "*.md"

9.2 Chercher du texte : grep

Chercher “TODO” dans un fichier :

grep "TODO" projet/README.md

Chercher récursivement dans un dossier :

grep -R "TODO" projet/

Afficher numéros de ligne :

grep -n "TODO" -R projet/

9.3 Trouver où est une commande : which, command -v

which python
command -v git

10) Réseau : comprendre l’essentiel et diagnostiquer

10.1 Tester la connectivité : ping

ping -c 4 8.8.8.8

10.2 Voir la configuration IP

Sur Linux (souvent) :

ip a
ip route

Sur macOS :

ifconfig
netstat -rn

10.3 Tester HTTP : curl

Récupérer une page :

curl https://example.com

Voir les en-têtes :

curl -I https://example.com

Suivre les redirections :

curl -L https://example.com

10.4 DNS : dig (ou nslookup)

dig example.com

11) Archives et compression : zip, tar, gzip

Créer une archive .tar.gz :

tar -czf projet.tar.gz projet/

Extraire :

tar -xzf projet.tar.gz

Créer un zip :

zip -r projet.zip projet/

Extraire un zip :

unzip projet.zip

Compréhension :


12) Variables d’environnement et PATH

12.1 Voir une variable

echo $HOME
echo $PATH

PATH est une liste de dossiers où le shell cherche les exécutables. Si vous tapez git, le shell cherche git dans les dossiers de PATH.

Afficher toutes les variables :

printenv

12.2 Définir une variable (session courante)

export NOM="Alice"
echo $NOM

Après fermeture du terminal, la variable disparaît, sauf si vous la mettez dans un fichier de configuration (~/.bashrc, ~/.zshrc).


13) Scripts : automatiser en douceur

13.1 Créer un script bash

Créez bonjour.sh :

nano bonjour.sh

Contenu :

#!/usr/bin/env bash
set -e

echo "Bonjour !"
echo "Nous sommes le : $(date)"
echo "Répertoire courant : $(pwd)"

Rendre exécutable :

chmod +x bonjour.sh

Exécuter :

./bonjour.sh

Explications :

13.2 Paramètres

Modifiez le script :

#!/usr/bin/env bash
set -e

echo "Salut, $1"

Exécutez :

./bonjour.sh Alice

14) Git : bases du versionnage (indispensable)

Git sert à suivre l’historique d’un projet, collaborer, revenir en arrière, comparer des versions.

14.1 Initialiser un dépôt

mkdir demo-git
cd demo-git
git init

Créer un fichier :

echo "# Mon projet" > README.md

Voir l’état :

git status

Ajouter au “staging” :

git add README.md

Créer un commit :

git commit -m "Ajoute un README"

Voir l’historique :

git log --oneline

14.2 Comprendre les 3 zones

Cette séparation permet de committer proprement un ensemble cohérent de changements.


15) Déboguer intelligemment : méthode simple

Quand quelque chose ne marche pas, évitez de “cliquer partout” au hasard. Appliquez une méthode :

  1. Lire le message d’erreur (en entier).
  2. Reproduire le problème (mêmes étapes).
  3. Isoler : quel composant ? fichier ? commande ? réseau ? droits ?
  4. Observer : logs, état, configuration.
  5. Tester une hypothèse à la fois.

Commandes utiles :

df -h
du -sh *
ls -la
ss -lntp

Ou (macOS / parfois Linux) :

lsof -iTCP -sTCP:LISTEN -n -P

16) Mini-projet guidé (pas à pas) : organiser un dossier et produire un rapport

Objectif : créer un dossier de travail, y mettre des fichiers, puis générer un petit “rapport” texte automatiquement.

16.1 Préparer l’espace

mkdir -p atelier/{data,output,scripts}
cd atelier

Vérifiez :

find . -maxdepth 2 -type d

16.2 Créer des fichiers de données

echo "alice,Paris" > data/clients.csv
echo "bob,Lyon" >> data/clients.csv
echo "carol,Toulouse" >> data/clients.csv

Afficher :

cat data/clients.csv

16.3 Générer un rapport avec des commandes

Compter le nombre de lignes (donc de clients) :

wc -l data/clients.csv

Extraire les villes :

cut -d',' -f2 data/clients.csv

Trier et supprimer doublons :

cut -d',' -f2 data/clients.csv | sort | uniq

16.4 Automatiser via script

Créez scripts/rapport.sh :

nano scripts/rapport.sh

Contenu :

#!/usr/bin/env bash
set -e

INPUT="data/clients.csv"
OUT="output/rapport.txt"

echo "Rapport clients" > "$OUT"
echo "Généré le : $(date)" >> "$OUT"
echo "" >> "$OUT"

echo "Nombre de clients :" >> "$OUT"
wc -l "$INPUT" >> "$OUT"
echo "" >> "$OUT"

echo "Villes (uniques) :" >> "$OUT"
cut -d',' -f2 "$INPUT" | sort | uniq >> "$OUT"

Rendre exécutable et lancer :

chmod +x scripts/rapport.sh
./scripts/rapport.sh

Lire le rapport :

cat output/rapport.txt

Ce que vous venez d’apprendre réellement :


17) Bonnes pratiques débutant (qui font gagner des heures)

man ls
man find
man grep
history | tail

18) Prochaines étapes (progression recommandée)

  1. Terminal niveau 2 : awk, sed, expressions régulières.
  2. Git niveau 2 : branches (git branch, git switch), fusion (merge), rebase.
  3. Réseau niveau 2 : ports, HTTP, TLS, reverse proxy.
  4. Scripting : bash avancé ou Python pour automatiser plus proprement.
  5. Sécurité : mots de passe, clés SSH, permissions, mises à jour.

Pour vous entraîner, essayez ces exercices :


Conclusion

Vous avez maintenant une base solide : naviguer, manipuler des fichiers, comprendre les permissions, installer des outils, diagnostiquer, et automatiser. Le point le plus important est la logique : chaque commande a une entrée, une sortie, des options, et s’inscrit dans un contexte (répertoire courant, droits, environnement). En avançant pas à pas, vous transformez l’ordinateur d’une “boîte noire” en un système compréhensible et maîtrisable.