Table des matières
Le mode console
Principe de syntaxe :
commande [option1|option2] <argument(s) requis> {arguments ou paramètres facultatifs}
Plusieurs façons de lancer un Terminal (Ubuntu 22.04) :
- Alt + F2 et taper gnome-terminal
- CTRL + ALT + Fn où Fn est une des touches F3 à F6, pour basculer dans une console virtuelle.
- CTRL + ALT + F2 pour sortir du mode console virtuelle.
- ALT + Fn pour basculer entre les consoles virtuelles ouvertes
- Revenir directement à la racine : cd /
- Revenir directement à la racine de l’utilisateur local : cd
- Pour créer un nouveau fichier vierge : touch nom_du_fichier
- Pour exécuter un fichier qui n'est pas un exécutable, le faire précéder de “point espace”.
Sudo ou comment se donner les droits administrateur
une règle simple :
- Utiliser sudo pour les commandes et les programmes fonctionnant et exécutés depuis le terminal.
- Utiliser gksudo ou gksu pour démarrer un programme graphique avec les droits administrateur
Exemple : Alt + F2 - gksu gedit (ou gksu gedit /chemin/fichier)
Pour rendre la console root permanent :
- Une fois la console ouverte, taper sudo -i
(ou sudo su) + mot de passe de la session courante.
ou
- Alt + F2 et taper gksudo xterm
Tout savoir sur le sudo : http://doc.ubuntu-fr.org/sudo
Commandes de base
Commande | Commentaire |
---|---|
ssh <user>@<ip machine> | |
ip a | Donne l'IP de la machine (pas de tiret devant le a) |
logname | Renvoi l'utilisateur en cours |
passwd | Sans option permet de changer son propre mot de passe |
who who -u who -b | Liste les utilisateurs connectés Utilisateur connecté en cours Heure de redémarrage de la machine |
id -u <user> | Renvoi l'identifiant unique de l'utilisateur |
clear / Ctrl+L | Nettoie l'écran |
Date [options] <+format> | |
pwd | Donne l'emplacement dans l'arborescence |
<nom de variable>=“chaine” echo $<nom de variable> unset <nom de variable> env set | Permet de créer une variable Permet de lire le contenu de la variable Efface la variable Visualisation des variables de l'utilisateur Visualisation de toutes les variables d'env. et fonctions |
History !<n° de ligne> | Affiche l'historique le contenu de l'historique des commandes Exécute la ligne <n° de ligne> |
cd / cd ~ / cd $HOME | Ces 3 commandes ramènent sur le répertoire personnel |
cd - | Rejoue la dernière commande cd |
ls -lt ls -lr ls -lrt ls -lR | Liste les fichiers par ordre de date descendant Inverse l'ordre de tri alphabétique Inverse l'ordre par défaut du tri par date Liste le contenu des dossiers de façon récursive |
touch fichier01.txt | Crée le fichier vide “fichier01.txt” |
cat <monFichier> more <monFichier> less <monFicher> head <monFichier> tail <monFichier> tail -n2 -f <monFicheir> | Affiche le contenu du fichier dans son intégralité Affiche le contenu du fichier page par page (espace / q) less = more avec commandes avancées de recherche Affiche les 10 premières ligne d'un fichier Affiche les 10 dernières ligne d'un fichier Permet d'afficher en temps réel les 2 dernières lignes du fichier |
wc [-clmw] <monFichier> | Permet de compter : -l = le nb de lignes -w = le nb de mots -m = le nb de caractères -c = le nb d'octets d'un fichier |
ln -s <cible> <lien> ln <cible> <lien> | Création d'un lien symbolique de <lien> vers <cible> Création d'un lien physique de <lien> vers <cible> |
grep | grep [-eilnv] “expr” <fichier1> (<fichier2>) |
find | find <chemin> [critères de rech] ([action à effectuer sur le résult]) La commande find est nativement récursive. |
rsync [-av] <src> <dest> | -a : mode archive (inclut -r, -l, -p, -t, -g, -o, -D) -r : copie récursive des répertoires -l : copie les liens symboliques -p : préserve les permissions -t : préserve les dates -g : préserve le groupe (mode sudo) -o : préserve le propriétaire (mode sudo) -D : préserve les périphériques (mode sudo) -v : mode verbeux |
whereis | Pour trouver le chemin du fichier exécutable d'une application Exemple : whereis blender ⇒ /usr/bin/blender |
Recherches avancées
Rechercher un fichier depuis la racine :
find / | grep nomdufichier ou find / -name smb.conf
Rechercher un fichier le dossier courant :
find . | grep nomdufichier find . -name nomdufichier
Rechercher une chaine de caractères dans un fichier :
- depuis la racine : find / -type f -exec grep -l chainecaractère {} \; - depuis le dossier courant : find . -type f -exec grep -l chainecaractère {} \;
Rechercher un fichier de type dossier dont le nom est monDossier et le supprimer de manière récursive :
- depuis le dossier courant : find . -type d -name "monDossier" -exec rm -rf {} \;
Compter le nombre de fichiers (sans compter les dossiers)
ls -lR *|grep ^-|wc -l
Nombre de fichiers du dossier local incluant cachés et contenu des sous-dossiers sans compter les dossiers
find . -type f | wc -l
Nombre de fichiers du dossier local + contenu des sous-dossiers en excluant cachés et les dossiers
find . -type f -not -name ".*" | wc -l
Nombre de fichiers du dossier local en excluant dossiers, sous-dossiers et cachés
find . -maxdepth 1 -type f -not -name ".*" | wc -l
Exploitation
sudo shutdown -h now
(arrêter le pc)
sudo shutdown -r now
(redémarrer le pc)
Lister les services : faire un ls ou un ls -l sur le dossier /etc/init.d
Redémarrer le service Samba : sudo service smbd restart
Monter un disque ou une partition locale :
- Rechercher le matériel (sdc) et la partition à monter (sdc1, sdc2…) : mount ou df -h ou fdisk -l
- Créer un point de montage : sudo mkdir /media/stock
(par exemple)
- Monter le disque : sudo mount -t [type] /dev/sdc2 /media/stock
- Dans le cas d'un format “ext”, le type de fichiers est normalement détecté par la commande mount.
- La commande suivante suffira : sudo mount /dev/sdc2 /media/stock
- Dans le cas d'un format FAT ou NTFS il faudra remplacer [type] par vfat (Fat32) ou ntfs-g3 (NTFS)
- sudo umount /media/stock
Monter un répertoire local sur un répertoire distant :
- Partage sans permissions
sudo mount -t cifs -o noperm //adresseIP/dossier /media/docs
- Partage Windows avec permissions en lecture seule
sudo mount -t cifs -o "username=nomUserAdmin",guest,iocharset=utf8,file_mode=0777,dir_mode=0777 //adresseIP/dossier /media/docs
- Partage Windows avec permissions en lecture/écriture
sudo mount -t cifs -o "username=nomUserAdmin",rw,iocharset=utf8,file_mode=0777,dir_mode=0777 //adresseIP/dossier /media/docs
- Partage Freebox avec permissions en lecture/écriture
sudo mount -t cifs -o "username=nomUserAdmin",rw,uid=1000,iocharset=utf8,file_mode=0777,dir_mode=0777 //IP_freebox/disque\ dur/dossier /media/freebox
Démonter le répertoire local sur lequel a été monté un répertoire distant :
sudo umount /media/docs
Monter une clé USB :
- Rechercher le matériel (sdb) et la partition à monter (sdb1, sdb2…) : mount ou df -h ou fdisk -l
- Créer un point de montage : sudo mkdir /media/disk
(par exemple)
- Monter la clé : sudo mount /dev/sdb1 /media/disk
(mount -t vfat /dev/sdb1 /media/disk
pour préciser le système de fichier FAT)
- sudo umount -f /media/disk
Copier un fichier vers le dossier monté précédement :
- cp /opt/virtual_Machine/Osiris.vmdk /media/disk
Copier tout le contenu d'un dossier vers le dossier monté précédement :
- cp -rv /opt/virtual_Machine/osiris/ /media/disk
Connaître son système
- Infos sur la distribution :
cat /etc/os-release
hostnamectl
cat /etc/lsb-release
lsb_release [-d|-a|-ds]
(si paquet lsb_release installé)
cat /etc/redhat-release
–> spécifique Red Hat
cat /etc/SuSe-release
–> spécifique Suse
cat /etc/issue
–> spécifique Debian - Architecture de la distribution :
uname [-a|-r]
- Nom machine :
hostname
- IP machine :
hostname -I
Connaître son matériel
http://doc.ubuntu-fr.org/materiel
http://doc.ubuntu-fr.org/connaitre_son_materiel
- Infos sur le matériel :
sudo lshw
- Infos sur le processeur :
sudo lscpu
cat /proc/cpuinfo
- Lister les périphériques USB :
lsusb
- Infos sur la carte wifi :
iwconfig
- Liste les disques et leurs ID :
sudo blkid
- Tester le bon fonctionnement d’une webcam :
gstreamer-properties
- Caractéristiques de la RAM :
free -m
- Emplacement des fichiers sources de mises à jour :
/etc/apt/sources.list
- Fichier de montage des disques durs :
/etc/fstab
- Lister les Filesystem avec leur taille :
df -h
- Lister les disques :
lsblk
- Pour voir la liste des services démarrés :
cd /etc/ini.d
+ls
- Infos sur le Wifi :
- Description des cartes réseau :
sudo lshw -C network
- Identification de la marque de la puce WIFI :
lspci -knn | grep Network -A3
- Vérification de la puissance du signal :
nmcli dev wifi
- Vérifier l'état du Wifi :
rfkill list
- Activer tous les éléments Wifi :
sudo rfkill unblock all
- Fichier de configuration pour le driver Wifi : /etc/modprobe.d/iwlwifi.conf
- Infos sur le réseau filaire :
- Utilitaire réseau open source en ligne de commandes :
nmap
- Pour le monde Windows : zenmap
Quand tout est perdu...
…Avant un reboot hard de la machine :
- Essayer de basculer sur une console virtuelle (ctrl+alt+F3→F6)
- Taper la commande :
ps aux |grep [nom de l'appli qui plante]
(oups -ef|grep [nom de l'appli qui plante]
) - Repérer le PID du processus à tuer
- taper la commande :
kill -9 <PID>
- Liste des process :
ps -ef
Commandes réseau
(fonctionne si les paquets “links” et “sox” sont installés (par défaut sur Ubuntu))
- sudo mii-tool eth0
: permet de vérifier si la carte réseau est bien connectée (réponse link ok
si active)
Si la carte réseau ne porte pas le nom eth0
on peut rechercher dans les messages de démarrage du noyau le changement de nom avec la commade suivante : dmesg | grep “eth”
- Si la carte wifi est active et que l'on est sûr qu'il y a des réseaux, la commande iwlist scan
doit renvoyer des réseaux sinon c'est que la carte est désactivée.
- La commande route -n
permettra de déterminer l'IP de la box.
netstat -taupen
(affiche la liste des ports occupés)
Pour vider le cache DNS et le recharger (équivalent ipconfig /flushdns)
sudo /etc/init.d/dns-clean start
sudo /etc/init.d/dns-clean restart
sudo /etc/init.d/dns-clean force-reload
Divers
Pour importer une clé de signature, voir didacticiel
http://doc.ubuntu-fr.org/tutoriel/comment_modifier_sources_maj
Pour modifier l'orientation EXIF d'un fichier jpeg
- jpegexiforient -1 … -8 nomdufichier.jpg
Commandes avancées, fonctions, fichier bash
Dans une ligne de commandes, le | sert à imbriquer les commandes les unes à la suite des autres dans le but de faire traiter par la commande suivante le résultat de la commande précédente.
Utiliser le ; si l’on veut faire suivre plusieurs commandes indépendantes.
&& = AND
|| = OR
\ ; = met fin à une ligne de commandes
Pour exécuter en ligne de commande un fichier qui n’est pas un exécutable, le faire précéder de “point espace”.
Pour lire le niveau de gestion avançé de puissance pour le disque dur :
sudo hdparm -I /dev/sda | grep power
Pour régler un niveau de gestion de puissance pour le disque dur (255 désactive le parcage des têtes) :
sudo hdparm -B 255 /dev/sda
Gestion des paquets APT
APT est un projet relativement vaste, qui prévoyait à l'origine une interface graphique. Il repose sur une bibliothèque contenant le cœur de l'application et apt-get est la première interface — en ligne de commande — développée dans le cadre du projet. apt est une deuxième interface en ligne de commande fournie par APT qui corrige quelques erreurs de conception de apt-get.
De nombreuses interfaces graphiques sont ensuite apparues en tant que projets extérieurs : synaptic (interface graphique), aptitude (qui inclut à la fois une interface en mode texte et une interface graphique, bien que pas encore complète), wajig, etc. Le frontal le plus recommandé est apt. A noter cependant que les syntaxes en ligne de commande d'aptitude et d'apt-get sont très similaires (source).
Fichier des dépôts : /etc/apt/sources.list (éditer le fichier sources.list : apt edit-sources
)
Les commandes suivante s'exécutent en root
Mise à jour de la liste des paquets disponibles : apt update
Installer les dernières versions de tous les paquets : apt upgrade
ou apt full-upgrade
(La commande full-upgrade remplit la même fonction que upgrade mais peut aussi supprimer des paquets installés si cela est nécessaire pour résoudre un conflit entre des paquets.)
Installer un nouveau paquet : apt install <paquet>
Supprimer un paquet : apt remove <paquet>
Désinstaller les paquets indiqués avec leurs dépendances logicielles : apt autoremove <paquet>
Supprimer un paquet et ses fichiers de configuration : apt purge <paquet>
Désinstalle les paquets indiqués, les dépendances logicielles et leurs fichiers de configuration :
apt autoremove --purge <paquet>
Sans nom de paquet, désinstalle toutes les dépendances devenues inutiles et leurs fichiers de configuration :
apt autoremove --purge
Trouver des informations sur un paquet (installé ou pas) : sudo apt show <nom_du_paquet>
Utiliser apt pour trouver un paquet installé : sudo apt list –installed | grep <nom_du_paquet>
Rechercher l’existence d'un paquet avec dpkg : sudo dpkg -l | grep <nom_du_paquet>
- Indique la version si le paquet est installé : apt-cache policy <nom_du_paquet> | grep Installé
- Donne le status du paquet (installé ou pas) : dpkg -s <nom_du_paquet> | grep Status
Supprime la totalité des paquets d'installation présents dans /var/cache/apt/archives : apt clean
Possibilité de cumuler plusieurs commandes :
apt update && apt full-upgrade && apt autoremove --purge
sudo apt autoremove && sudo apt clean
Dépôts PPA
Pour lister les dépôts PPA présents sur votre système :
ls -l /etc/apt/sources.list.d/
Pour avoir le détail de tous les dépôts (PPA ou non) en une seule fois :
grep -Enrv --include='*.list' --include='*.sources' '^#|^$' /etc/apt
Ajout d'un PPA aux sources logicielles :
sudo add-apt-repository ppa:<nom_du_dépôt> sudo apt update
Gestion des paquets SNAP et Flatpak
snap list : liste toutes la applis SNAP installées snap list --all : Lister toutes les versions installées des Snap (y compris celles désactivées) snap refresh --time : Vérifier si des mises à jour sont disponibles sans les installer sudo snap refresh : mettre à jour tous les Snap installés sudo snap refresh <nom_du_package> : mettre à jour un seul package Snap spécifique
flatpak list : liste toutes la applis Flatpak installées
ffmpeg
Installation de ffmpeg et liste des codecs disponibles :
sudo apt update sudo apt install ffmpeg ffmpeg -encoders ffmpeg -decoders ffmpeg -formats ffmpeg -codecs
Vérifier la version de ffmpeg
ffmpeg -version
Exemple de conversions basiques :
ffmpeg -i input.mp4 output.webm ffmpeg -i VideoFreebox.m2ts VideoFreebox.mp4 --> lisible sur tous supports
Exemple de conversion plus complexe qui converti un fichier mts en avi :
ffmpeg -i input.mts -vcodec mjpeg -b 100M -acodec pcm_s16be output.avi
Exemple de conversion d'une vidéo x265 en Xvid/mp4 compatible Freebox :
ffmpeg -i input.mkv -map 0:v -map 0:a -c:v libxvid -qscale:v 10 -c:a copy output.mp4
- -map : Cette option permet de contrôler quels flux d'entrée sont inclus dans le fichier de sortie.
0 : Cela fait référence au premier fichier d'entrée (les fichiers d'entrée sont numérotés à partir de 0)
v : Cela signifie que vous souhaitez mapper les flux vidéo (v pour vidéo)
a : Cela signifie que vous souhaitez mapper les flux audio (a pour audio)
Ainsi, -map 0:v signifie que vous souhaitez inclure tous les flux vidéo du premier fichier d'entrée dans le fichier de sortie. Cela est particulièrement utile lorsque vous travaillez avec des fichiers multimédias qui contiennent plusieurs flux (par exemple, plusieurs pistes audio ou vidéo) et que vous souhaitez sélectionner spécifiquement ceux à inclure dans votre sortie. - -c:v libxvid spécifie que le codec vidéo à utiliser est libxvid
- -qscale:v : Cette option permet de définir la qualité de la vidéo. Une valeur plus faible signifie une meilleure qualité (et donc un fichier plus volumineux), tandis qu'une valeur plus élevée signifie une qualité moindre (et un fichier plus petit). La plage typique pour libxvid est de 1 à 31.
- -c:a copy : spécifie que le flux audio sera copié sans être transcodé.
Sans cette option, ffmpeg transcoderait tous les flux, vidéo, de sous-titres et… audio !
Sources :
Gestion des utilisateurs
Lister les utilisateurs ou les groupes :
compgen -u compgen -g
Lister les groupes d'un utilisateur :
id <nom_user> groups <nom_user>
Lister les membres d'un groupe :
getent group <nom_group>
Lister les connexions en cours sur le serveur :
who -u users w
Fermer une session utilisateur via la console :
sudo skill -KILL -u utilisateur
Pour fermer un terminal dont la connexion a été perdue (ssh par exemple)
Identifier la console à fermer :
~$ w 11:54:31 up 15 days, 21:34, 6 users, load average: 0,00, 0,00, 0,03 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ubuntu tty1 - 24oct.23 15days 0.45s 0.16s -bash ubuntu pts/0 - 24oct.23 15days 0.04s 0.25s sudo su bhervoue pts/1 10.220.100.58 08:57 2:56m 0.72s 0.09s sshd: bhervouet [priv] bhervoue pts/2 10.220.100.58 08:57 29:03 0.66s 0.69s sudo su - friche pts/3 10.185.124.75 11:02 1.00s 0.13s 0.00s w friche pts/4 10.185.124.75 11:50 4:17 0.02s 0.02s -bash
La commande w permet de visualiser les utilisateurs connectés et la commande en cours d'exécution. Dans l'exemple ci-dessus, je suis donc actuellement connecté sur 2 terminaux pts/3 & pts/4. On voit également que la commande w a été exécutée sur le terminal pts/3 et que le terminal pts/4 est inactif depuis 4 min et 17 sec. Il faut donc fermer le terminal pts/4.
Identifier le processus lié au terminal à fermer pts/4
ps -ef | grep friche@pts/4 | grep -v grep friche 91990 91929 0 11:50 ? 00:00:00 sshd: friche@pts/4
Le terminal pts/4 est donc lié au processus 91990.
Fermer le terminal :
kill -s 9 91990
Créer un nouvel utilisateur :
sudo adduser <nom_new_user>
Ajouter un utilisateur à un groupe :
sudo adduser <nom_user> <nom_group> sudo usermod -aG <nom_group> <nom_user>
Supprimer un utilisateur d'un groupe :
sudo deluser <nom_user> <nom_group>
Supprimer un utilisateur du système :
sudo userdel -r <nom_user> sudo deluser --remove-home <nom_user>
Modifier un (ou son) mot de passe
sudo passwd <nom_user>
Saisir deux fois le nouveau mot de passe et le confirmer.
Gestion des droits
CRON
- cron est le “daemon” (processus) qui fait tourner l'utilitaire de planification de tâches
- crontab est la commande qui permet d'éditer les tâche planifiées
Pour vérifier si cron est en cours de fonctionnement exécuter la commande suivante :
ps aux | grep cron
La commande doit retourner au minimum une ligne de ce style :
root 617 0.0 0.0 9420 2800 ? Ss 17:00 0:00 /usr/sbin/cron -f
Si la commande ne renvoie rien c'est que cron n'est pas démarré ou pas installé.
Installation rapide de cron sous Ubuntu :
sudo apt update && sudo apt install cron
Une fois installé, pour être sûr que le service soit lancé au démarrage du serveur, exécuter la commande suivante :
sudo systemctl enable cron
Voici quelques-unes des commandes de base :
crontab -e —> pour créer et modifier un fichier crontab. crontab -l —> pour consulter les tâches planifiées de l'utilisateur courant. crontab -r —> pour supprimer les fichiers crontab. sudo crontab -u utilisateur -e —> pour modifier le fichier crontab d’un autre utilisateur avec un accès super-utilisateur. sudo crontab -u utilisateur -l —> pour consulter les tâches d’un autre utilisateur. crontab -a nom_du_fichier —> pour installer le nom_du_fichier sous forme de fichier crontab (sur certains systèmes, -a n’est pas nécessaire).
Pour créer une tâche Cron, le plus simple dans un premier temps est d'éditer le fichier de tâches Cron par la commande
crontab -e
Cette commande édite le fichier de tâches Cron de l'utilisateur courant. Chaque utilisateur a ses propres taches Cron, et donc son propre fichier de taches Cron.
Dans ce fichier chaque ligne correspond à une tache, et chaque ligne est composée de 5 champs séparés par des espaces.
Voici un exemple de tâche Cron qui exécute un script PHP pour la régénération de la table annuaire
Toutes les heure à partir de 7h30, de 7h à 20h, de lundi à vendredi :
# Génération de l'annuaire toutes les heures 30 7-20/1 * * mon,tue,wed,thu,fri /usr/bin/php /var/www/annuaire/generation_annuaire.php
Définition des entrées :
* * * * * /home/user/bin/somecommand.sh | | | | | | | | | | | Commande ou Script à exécuter | | | | | | | | | Jour de la semaine(0-6 | Sun-Sat) | | | | | | | Mois(1-12) | | | | | Jour du mois(1-31) | | | Heure(0-23) | Min(0-59)
- Minute — minute de l’heure à laquelle la commande sera exécutée, allant de 0 à 59.
- Heure — l’heure à laquelle la commande sera exécutée, de 0 à 23.
- Jour du mois — le jour du mois où vous voulez que la commande soit exécutée, de 1 à 31.
- Mois — le mois sur lequel la commande spécifiée sera exécutée, de 1 à 12.
- Jour de la semaine — le jour de la semaine où vous souhaitez que la commande soit exécutée, de 0 à 7.
Caractères appropriés à utiliser dans chaque fichier crontab :
- Astérisque (*) — pour définir tous les paramètres de planification.
- Virgule (,) — pour maintenir deux ou plusieurs temps d’exécution de la même commande.
- Tiret (-) — pour déterminer la plage de temps lors de la définition de plusieurs temps d’exécution d’une même commande.
- Barre oblique (/) — pour créer des intervalles de temps prédéterminés dans une plage spécifique.
- Dernier (L) « Last en anglais » — dans le but précis de déterminer le dernier jour de la semaine d’un mois donné. Par exemple, 3L signifie le dernier mercredi.
- Jour de la semaine (W) « Weekday en anglais » — pour déterminer le jour de la semaine le plus proche d’un moment donné. Par exemple, 1W signifie que si le 1er est un samedi, la commande sera exécutée le lundi (le 3).
- Hash (#) — pour déterminer le jour de la semaine, suivi d’un nombre allant de 1 à 5. Par exemple, 1#2 signifie le deuxième lundi
Pour aller plus loin…
- Les tâches planifiées cron sont définies au niveau du système dans le fichier /etc/crontab et dans le dossier /etc/cron.d/
- Il est possible d'éditer des services à exécuter automatiquement en rajoutant un fichier du nom que l'on souhaite dans le répertoire /etc/crond.d
Attention contrairement aux lignes d'un fichier crontab, elles doivent préciser quel utilisateur (nom_utilisateur dans l'exemple ci-dessous) exécute le script :
* * * * * nom_utilisateur /bin/touch /home/me/ding_dong
- Les commandes ci-dessus sont stockées dans un fichier crontab appartenant à votre compte d'utilisateur et exécutées avec votre niveau des permissions. Si vous voulez exécuter, régulièrement, une commande exigeant un plus haut niveau de permission (root), vous devez utiliser le fichier crontab root (ou racine) :
sudo crontab -e
- Une tâche Cron qui s’exécute n'a pas accès à la variable environnement “$PATH”, donc pour lancer un script, il faut utiliser le chemin absolu du script, par exemple “/usr/bin/php” au lieu de “php”.