Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🐧 Bash — Guide PRO Linux Shell

Bible Bash Shell — scripts, pipelines, text-processing, debugging, security, automation & DevOps workflows.

1

Bash Essentials

Variables, quoting, expansions

BASICS
2

Scripting

functions, loops

SCRIPT
3

Pipes

stdout/stderr redirections

PIPES
4

Regex & grep

regex, PCRE

REGEX
5

sed

replace/transform streams

SED
6

awk

column operations

AWK
7

systemd

service management

SYSTEMD
8

Logging

journalctl, syslog

LOGS
9

Network

curl, ping, ss, tcpdump

NET
10

Security

permissions, sudo, umask

SEC
11

Debugging

set -x, tracing

DBG
12

Performance

top, ps, perf, iostat

PERF
13

Packaging

tar, gzip, dpkg, rpm

PKG
14

Filesystem

du, df, mount

FS
15

Processes

kill, pgrep

PROC
16

Cron

scheduled tasks

CRON
17

SSH

keys, agent, forwarding

SSH
18

CLI Tricks

fzf, xargs, tee

TRICKS
19

Colour & Prompt

PS1 customization

PROMPT
20

Text Parsing

cut, paste, sort, uniq

PARSE
Bash Essentials
  • Base du thème BASICS.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ BASICS ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for BASICS'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Scripting
  • Base du thème SCRIPT.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ SCRIPT ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for SCRIPT'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Pipes
  • Base du thème PIPES.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PIPES ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PIPES'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Regex & grep
  • Base du thème REGEX.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ REGEX ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for REGEX'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
sed
  • Base du thème SED.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ SED ] | pipelines -> filters -> output
sed — remplacements, captures, in-place, multi-fichiers
sed 's/foo/bar/g' input.txt
sed -i.bak 's/^(user=).*/\1admin/' app.conf
sed -E 's/(id)=([0-9]+)/\1=ID-\2/' ids.txt
sed -E '/^\s*($|#)/d' config.ini
sed '10,20 s/error/ERROR/g' server.log
Astuce: tester sans -i d'abord, puis valider avec grep -n.
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
awk
  • Base du thème AWK.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ AWK ] | pipelines -> filters -> output
awk — colonnes, agrégations, filtres multi-fichiers
awk -F, '{ sum[$2] += $3 } END { for (k in sum) printf "%s,%d\n", k, sum[k] }' data.csv | sort -t, -k2nr
awk -F, 'NR==1{for(i=1;i<=NF;i++)h[$i]=i;next} $h["status"]=="ERR"{print $0}' report.csv
awk '{ s+=$1; c++; print c, s/c }' times.txt
Astuce: utilisez gawk pour gensub/asorti.
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
systemd
  • Base du thème SYSTEMD.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ SYSTEMD ] | pipelines -> filters -> output
systemd — unit de service, journalctl, restart policy
[Unit]
Description=My Kotlin Service
After=network.target
[Service]
User=ubuntu
ExecStart=/usr/bin/java -jar /opt/app/app.jar
Restart=on-failure
RestartSec=5
Environment=JAVA_OPTS=-Xms256m -Xmx512m
WorkingDirectory=/opt/app
[Install]
WantedBy=multi-user.target
# Commands
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
journalctl -u myapp -n 200 -f
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Logging
  • Base du thème LOGS.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ LOGS ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for LOGS'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Network
  • Base du thème NET.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ NET ] | pipelines -> filters -> output
network — curl, jq, ss, tcpdump
curl -s https://api.example.com/items | jq -r '.items[] | [.id,.name] | @csv'
curl -s -X POST -H 'Content-Type: application/json' -d '{"name":"demo"}' https://api.example.com/items
ss -lntp
sudo tcpdump -i any port 443 -c 10 -vv
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Security
  • Base du thème SEC.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ SEC ] | pipelines -> filters -> output
security — droits, umask, find, sudo
umask 027
chmod -R o-rwx /srv/secret
find / -xdev -type f -perm -0002 -print 2>/dev/null
# sudoers (via visudo)
%deploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart myapp
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Debugging
  • Base du thème DBG.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ DBG ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for DBG'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Performance
  • Base du thème PERF.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PERF ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PERF'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Packaging
  • Base du thème PKG.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PKG ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PKG'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Filesystem
  • Base du thème FS.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ FS ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for FS'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Processes
  • Base du thème PROC.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PROC ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PROC'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Cron
  • Base du thème CRON.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ CRON ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for CRON'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
SSH
  • Base du thème SSH.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ SSH ] | pipelines -> filters -> output
ssh — clés, config, multiplexing
ssh-keygen -t ed25519 -C "ops@yourorg"
Host prod-1
  HostName 10.0.0.10
  User ubuntu
  IdentityFile ~/.ssh/id_ed25519
  ControlMaster auto
  ControlPersist 300
  ControlPath ~/.ssh/cm-%r@%h:%p
ssh-copy-id -i ~/.ssh/id_ed25519.pub ubuntu@10.0.0.10
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
CLI Tricks
  • Base du thème TRICKS.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ TRICKS ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for TRICKS'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Colour & Prompt
  • Base du thème PROMPT.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PROMPT ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PROMPT'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'
Text Parsing
  • Base du thème PARSE.
  • Production cases.
  • Erreurs fréquentes à éviter.
[ PARSE ] | pipelines -> filters -> output
#!/usr/bin/env bash
echo 'Example for PARSE'
  • Toujours activer `set -euo pipefail`
  • Tester les entrées
  • Documenter les scripts
Small, reusable functions.
  • Scripts monolithiques
  • Pas de validation d'entrée
Risque de corruption de données
  • Exécution rapide
  • Lisibilité
  • Sécurité des fichiers
  1. Include shebang
  2. #!/usr/bin/env bash
  3. set -euo pipefail
# Example test
./script.sh input.txt > output.txt
alias ll='ls -alF'