#1 Le 19/12/2017, à 17:36
- moko138
Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
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
/!\ 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
Dernière modification par moko138 (Le 14/01/2018, à 16:00)
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#2 Le 19/12/2017, à 17:42
- moko138
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Remplacer entièrement un fichier-système de quelques lignes :
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 (cf. message précédent).
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 /etc/modprobe.d/blacklist-truc-muche.conf
où ce sont les \n qui marquent les sauts de ligne demandés,
va créer le fichier /etc/modprobe.d/blacklist-truc-muche.conf (ou l'écraser, s'il existe déjà) et lui donner ce contenu de cinq lignes :
#
# blacklister le module truc-muche de la carte wifi abcd2345
# ajout du 1er avril 1847
blacklist truc-muche
#
Points-clefs :
L'option -e derrière echo (cf. message précédent) ;
L'absence d'option -a derrière tee.
/!\ Comme l'absence d'option -a derrière tee provoque l'écrasement du fichier au cas où il préexisterait, il faut soigneusement réfléchir avant de lancer votre commande !
sudo, comme un feu tricolore, vous signale que vous devez redoubler de vigilance !
Dernière modification par moko138 (Le 14/01/2018, à 15:53)
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#3 Le 19/12/2017, à 17:51
- nam1962
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Intéressant.
awk ou sed ne donneraient-il pas une commande plus concise ?
[ Modéré ]
Hors ligne
#4 Le 21/12/2017, à 12:46
- denis56
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Salut,
À l'ère de l'Omnynter-minableTutoVidéoFlou, je déclare ! :
!!! moko138, Premier prix de Pédagogie décarbonée !!!
Merci
Debian Jessie souvent, Xubuntu parfois,
Bénévole @ Rhizomes
Hors ligne
#5 Le 21/12/2017, à 13:08
- MicP
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Il s'agit plutôt de Fichiers de configuration
que de Fichiers système
Hors ligne
#6 Le 21/12/2017, à 14:10
- moko138
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Il s'agit plutôt de Fichiers de configuration
que de Fichiers système
Oui MicP, il s'agit souvent de fichiers de configuration. Et il est heureux que l'utilisateur ait rarement à modifier un fichier-système en-dehors des fichiers de configuration !
Mais tu remarqueras qu'on peut ainsi compléter ou écraser :
le fstab
ou /etc/default/grub
ou une tâche cron
ou, en-dehors de /etc :
/var/lib/dpkg/info/'le paquet qui bloque'.postrm
ou un script (dans /opt ou ailleurs).
...
L'idée est de pouvoir faire modifier un fichier appartenant à root
sans abaisser la sécurité,
et en s'affranchissant :
- de l'éditeur de texte en mode graphique,
- de l'éditeur de texte en mode terminal,
- de la variante de *buntu,
- et même de la version (faire installer gksudo ou kdesudo ? Et avec wayland, faut-il faire démarrer une session Xorg avec abaissement de sécurité ? Cf. le message suivant).
Toi, MicP, qui assistes souvent des utilisateurs non chevronnés aux systèmes variés, j'espère que tu apprécieras.
Dernière modification par moko138 (Le 22/12/2017, à 07:25)
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#7 Le 22/12/2017, à 07:24
- moko138
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Pour les distributions utilisant wayland (*buntu 17.10/Artful et versions à venir), voir une solution là :
./viewtopic.php?id=2019480 "Astuce : Modifier un fichier-système en mode graphique et en sécurité".
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#8 Le 22/12/2017, à 08:30
- MicP
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
… j'espère que tu apprécieras. …
Tout autant que j'apprécie l'aide que l'on m'a apporté jusqu'ici et que l'on m'apporte encore
parce que j'ai encore beaucoup à apprendre,
comme disait S. Rousseau :
…qué voulez vous yé pé pas être partout.
Dernière modification par MicP (Le 22/12/2017, à 08:32)
Hors ligne
#9 Le 22/12/2017, à 15:29
- kholo
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
salut,
@moko : pour la date tu peux mettre :
$(date)
echo -e "des trucs, \nla date est $(date)\n"
ou formaté (voir man date)
echo -e "des trucs, \nla date est $(date +%D)\n"
des trucs,
la date est 12/22/17
ou ...
date +%F
2017-12-22
...
Hors ligne
#10 Le 22/12/2017, à 16:32
- moko138
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
Merci, mais non :
autant je conseille volontiers l'usage de
sudo smartctl -s on -a /dev/sdX > smart_$(date +%Y%m%d-%Hh%M).txt
quand il s'agit de faire stocker durablement une info qui sera réutilisée calmement, sans urgence (ou 61 minutes plus tard dans certain cas précis),
autant, quand il s'agit de faire faire, à un utilisateur pas forcément chevronné, une copie de sécurité d'un fichier-système, afin qu'en cas de problème, il puisse le restaurer malgré son stress et son inexpérience (il risque d'être alors en live ou en recovery-root), autant, donc je veux qu'il/elle fasse simple et facile à retrouver
==> date qu'il/elle a lui-même tapée, avec ses doigts.
Ainsi, 10 minutes ou 1 heure après la frappe, je minimise son dépaysement.
Cela dit, ta remarque me fait prendre conscience - merci kholo ! - que plus d'un utilisateur risque de mettre des espaces dans la date. Donc
je corrige immédiatement le 1er message : ajout de guillemets. (Dans ce fil et dans le fil-cousin Astuce : Modifier un fichier-système en mode graphique et en sécurité.
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#11 Le 22/12/2017, à 20:43
- kholo
Re : Astuce Ajouter quelques lignes dans un fichier-système ou le remplacer
content de t'avoir donné des idées...
pour la date, c'est pour que le plus grand nombre prenne l'habitude d'utiliser le bash...
$(date +%F) voire "$(date +%F)" ça reste accessible comme fonction !
et ça explique comment mettre une fonction dans du texte...
c'est juste éducatif
edit : bonne fêtes !
Dernière modification par kholo (Le 22/12/2017, à 20:45)
Hors ligne