Guide recrutement data
Test technique Linux / Bash : ce qu'on evalue en entretien Data Engineer
Linux est l'environnement de production de la quasi-totalite des infrastructures data. Voici comment evaluer la maitrise reelle du terminal.
Data Builder·Juin 2025·7 min de lecture·Data Engineer
Linux est l'environnement de production de la quasi-totalite des infrastructures data. Un Data Engineer qui ne maitrise pas le terminal est bloque sur les serveurs de production.
1Navigation et arborescence
Question discriminante
Expliquez l'arborescence Linux. Que contiennent /etc, /var, /home et /tmp ?
- /etc — configuration systeme
- /var — donnees variables (logs, databases)
- /home — repertoires utilisateurs
- /tmp — fichiers temporaires
find /var/log -name "*.log" -mtime -1
ls -lah | sort -k5 -rh | head -10
2Manipulation de fichiers
Question discriminante
Vous devez trouver toutes les lignes ERROR dans un fichier de logs de 2 Go. Quelle commande ?
grep "ERROR" /var/log/app.log | wc -l
grep "ERROR" /var/log/app.log | sort | uniq -c | sort -rn | head -20
tail -f /var/log/app.log | grep --line-buffered "CRITICAL"
- cat, head, tail -f, less — lire les fichiers
- grep -E, grep -v — recherche avec regex
- pipes (|) — chainer les commandes
- chmod et chown — permissions et propriete
3Scripts Bash
Question discriminante
Ecrivez un script bash qui verifie si un fichier existe et le deplace dans un dossier archive.
#!/bin/bash
FILE="/data/incoming/export.csv"
if [ -f "$FILE" ]; then
DATE=$(date +%Y%m%d)
mv "$FILE" "/data/archive/export_$DATE.csv"
else
echo "Fichier introuvable"; exit 1
fi
- Variables, if/elif/else, boucles for et while
- Exit codes — 0 = succes, non-zero = erreur
- Cron jobs — crontab -e
4Environnement et PATH
Question discriminante
Qu'est-ce que la variable PATH ? Que se passe-t-il si une commande n'est pas dans PATH ?
- .bashrc vs .bash_profile — quand chaque fichier est execute
- export — rendre une variable disponible aux sous-processus
5Processus et monitoring
Question discriminante
Un processus Airflow semble bloque. Quelles commandes utilisez-vous ?
- ps aux, top, htop — lister et monitorer les processus
- kill -9 PID — tuer un processus recalcitrant
- nohup & — lancer en arriere-plan
- df et du — espace disque
6Grille par niveau
| Niveau | Maitrise attendue | Signal GO | NO-GO |
|---|
| Junior | Navigation, ls/cd/pwd, grep, cp/mv/rm | Comprend les pipes, cherche dans les logs | Ne sait pas ce qu'est PATH |
| Confirme | Scripts bash, cron, chmod, variables env | A ecrit des scripts avec conditions et boucles | N'a jamais ecrit un script bash |
| Senior | Processus, monitoring, redirections, nohup | Diagnostique un processus bloque | Ne sait pas tuer un processus |
| Lead | Administration systeme, securite, standards equipe | A mis en place des scripts de monitoring | Ne peut pas expliquer chmod 755 |
Home›Blog›Linux / Bash technical interview
Data hiring guide
Linux / Bash technical interview: what we really assess in data hiring
Linux is the production environment of virtually all data infrastructure. Here is how to assess real terminal proficiency.
Data Builder·June 2025·7 min read·Data Engineer
Linux is the production environment of virtually all data infrastructure. A Data Engineer who does not master the terminal is blocked on production servers.
1Navigation and directory tree
Key question
Explain the Linux directory tree. What do /etc, /var, /home and /tmp contain?
- /etc — system configuration
- /var — variable data (logs, databases)
- /home — user directories
- /tmp — temporary files
find /var/log -name "*.log" -mtime -1
ls -lah | sort -k5 -rh | head -10
2File manipulation
Key question
You need to find all ERROR lines in a 2 GB log file. What command do you use?
grep "ERROR" /var/log/app.log | wc -l
grep "ERROR" /var/log/app.log | sort | uniq -c | sort -rn | head -20
tail -f /var/log/app.log | grep --line-buffered "CRITICAL"
- cat, head, tail -f, less — reading files
- grep -E, grep -v — search with regex
- pipes (|) — chaining commands
- chmod and chown — permissions and ownership
3Bash Scripts
Key question
Write a bash script that checks whether a file exists and moves it to an archive folder.
#!/bin/bash
FILE="/data/incoming/export.csv"
if [ -f "$FILE" ]; then
DATE=$(date +%Y%m%d)
mv "$FILE" "/data/archive/export_$DATE.csv"
else
echo "File not found"; exit 1
fi
- Variables, if/elif/else, for and while loops
- Exit codes — 0 = success, non-zero = error
- Cron jobs — crontab -e
4Environment and PATH
Key question
What is the PATH variable? What happens if a command is not in PATH?