🐧 Bash — Guide PRO Linux Shell
Bible Bash Shell — scripts, pipelines, text-processing, debugging, security, automation & DevOps workflows.
1
Bash Essentials
Variables, quoting, expansions
BASICS2
Scripting
functions, loops
SCRIPT3
Pipes
stdout/stderr redirections
PIPES4
Regex & grep
regex, PCRE
REGEX5
sed
replace/transform streams
SED6
awk
column operations
AWK7
systemd
service management
SYSTEMD8
Logging
journalctl, syslog
LOGS9
Network
curl, ping, ss, tcpdump
NET10
Security
permissions, sudo, umask
SEC11
Debugging
set -x, tracing
DBG12
Performance
top, ps, perf, iostat
PERF13
Packaging
tar, gzip, dpkg, rpm
PKG14
Filesystem
du, df, mount
FS15
Processes
kill, pgrep
PROC16
Cron
scheduled tasks
CRON17
SSH
keys, agent, forwarding
SSH18
CLI Tricks
fzf, xargs, tee
TRICKS19
Colour & Prompt
PS1 customization
PROMPT20
Text Parsing
cut, paste, sort, uniq
PARSEBash 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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.txtAstuce: 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- 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
- Include shebang
- #!/usr/bin/env bash
- set -euo pipefail
# Example test ./script.sh input.txt > output.txt
alias ll='ls -alF'
