Aller au contenu principal

Comprendre tee, les redirections et le bloc EOF

Exemple utilisé pour écrire un complément avec les droits administrateur :

sudo tee /etc/systemd/system/lab-demo.service.d/security.conf > /dev/null <<'EOF'
[Service]
NoNewPrivileges=yes
PrivateTmp=yes
ProtectSystem=full
ProtectHome=yes
EOF
  • tee lit l’entrée standard et la copie vers un fichier et vers sa sortie standard.
  • sudo tee chemin donne au programme qui ouvre le fichier les droits administrateur.
  • > /dev/null masque uniquement la sortie standard ; le fichier est bien écrit.
  • <<'EOF' est un here-document : les lignes suivantes constituent l’entrée standard jusqu’au délimiteur EOF, seul sur sa ligne.
  • Les guillemets du délimiteur empêchent les substitutions de variables et de commandes dans le bloc : $HOME resterait du texte littéral.
  • tee remplace le contenu existant ; tee -a ajoute à la fin.
  • Avec sudo echo ... > fichier, la redirection est réalisée par le shell courant, pas par sudo : elle peut donc échouer sur un fichier protégé.
  • Un \ à la fin d’une ligne joint cette ligne à la suivante ; il ne doit pas être suivi d’espaces.

Ces commandes illustrent la création de compléments ; adapter leur contenu aux fichiers existants.