Il est fréquent
d'avoir à ajouter quelques lignes à un fichier-système
ou
d'avoir à créer un fichier-système de quelques lignes
ou
d'avoir à remplacer tout le contenu d'un fichier-système par quelques lignes.
Cela s'obtient simplement, sans éditeur de texte,
Ajouter quelques lignes à un fichier-système ou le créer :
Bien entendu, comme à chaque fois qu'on s'apprête à modifier un fichier-système,
on commencera par en faire l'indispensable copie de sauvegarde datée :
sudo cp -av /chemin/vers/mon-fichier "/chemin/vers/mon-fichier.<date-de-la-veille>"
Cette copie permettra, en cas de pépin, de faire machine arrière comme ceci :
sudo cp -av "/chemin/vers/mon-fichier.<date-de-la-veille>" /chemin/vers/mon-fichier
/![/b] Attention ! Respecter les guillemets ! Mais ne pas taper les chevrons ! (< >)
- -
Ensuite, la commande
echo -e '#\n# blacklister le module truc-muche de la carte wifi abcd2345\n# ajout du 1er avril 1847\nblacklist truc-muche\n#' | sudo tee -a /etc/test-ajout01.bak
où ce sont les \n qui marquent les sauts de ligne demandés,
va
ajouter au fichier /etc/test-ajout01.bak ces
cinq lignes
#
# blacklister le module truc-muche de la carte wifi abcd2345
# ajout du 1er avril 1847
blacklist truc-muche
#
Si le fichier n'existe pas encore, la commande, en plus, le crée.
Pour vérifier que c'est bien un
ajout qui a été fait, il suffit de répéter la commande puis de faire
cat /etc/test-ajout01.bak
on a maintenant deux fois le groupe de lignes.
Points-clefs :
L'option
-e derrière
echo, pour que les retours à la ligne \n soient pris en compte (sans l'option -e, les \n seraient compris comme une paire de caractères écrits, donc toutes les lignes seraient fusionnées) ;
L'option
-a derrière
tee ["a" comme Ajouter (anglais Append)].
Sans le -a, on écraserait le fichier !
sudo, comme un feu tricolore, vous signale que vous devez redoubler de vigilance !
Applications pratiques :
Dans le cas
Anomalies réseaux en Ethernet et Wifi sur la version 17.04, le remède proposé peut être obtenu en
copiant-collant cette commande :
echo -e '#\n[device]\nwifi.scan-rand-mac-address=no\n' | sudo tee -a /etc/NetworkManager/NetworkManager.conf
- -
Blacklister le module uvcvideo de la webcam (
./viewtopic.php?pid=21742836#p21742836) :
insérer la date à la place des trois points puis
echo -e '\n# blacklister le module uvcvideo pour webcams)\n# ajout manuel en date du ...\nblacklist uvcvideo\n' | sudo tee -a /etc/modprobe.d/blacklist.conf
- -
Imposer des options à un module wifi :
./viewtopic.php?pid=21760529#p21760529, une seule ligne ajoutée, donc ni option -e ni \n, mais ajout donc
tee option -a :
echo "options ath9k nohwcrypt=1" | sudo tee -a /etc/modprobe.d/ath9k.conf