66 votes

Comment puis-je éditer un fichier s'il n'y a pas de vi, vim, joe, etc.

Existe-t-il un moyen d'éditer un fichier s'il n'y a pas de vi, vim, joe, mcedit ? En d'autres termes, existe-t-il un moyen d'éditer un fichier en utilisant uniquement les commandes Shell ?

4voto

J'imagine que vous pouvez faire ce que vous voulez avec grep y perl - rechercher la ligne voulue avec grep Modifiez cette ligne en ajoutant perl ( perl peut se substituer en grande partie à sed ), puis confirmez que vous n'avez pas effectué plus de changements que prévu en faisant diff filename filename.new . Si c'est le cas, rendez les modifications permanentes - mv filename.new filename

2voto

cnd Points 101

Installez vi - aussi bizarre que cela puisse paraître, vous pouvez souvent copier un "vi" existant sur une autre machine et il fonctionnera correctement sur la vôtre. J'ai trouvé une partition "/data" sur de nombreux appareils où vous pouvez l'enregistrer et l'exécuter.

Je l'ai fait. Cela fonctionne.

Si vous voulez augmenter vos chances de le faire fonctionner du premier coup, trouvez n'importe quel exécutable existant sur votre machine et exécutez ceci par-dessus :

readelf -h </bin/filename>

puis vérifiez que le "vi" que vous obtenez ailleurs utilise le même chipset, la même taille de bit, etc.

Fonctionne aussi pour d'autres programmes (tcpdump est un autre programme avec lequel j'ai réussi).

2voto

Gagan Points 63

Je travaillais sur Router avec BusyBox installé et il n'y avait pas d'éditeur de texte. L'un des moyens que j'ai trouvé pour y parvenir est le suivant,

  1. Sortie le contenu du fichier en utilisant chat
  2. Éditer les fichiers sur votre système/pc
  3. Télécharger le fichier mis à jour sur internet tel que Transfer.sh
  4. Télécharger le fichier mis à jour sur le routeur/appareil en utilisant boucler Dans mon cas, j'ai dû utiliser la commande --ignore pour contourner l'avertissement relatif au certificat/https.
  5. Supprimer [ RM ] l'ancien fichier.
  6. Renommer/déplacer [ MV ] le nouveau fichier avec le nom de l'ancien.

1voto

bobmagoo Points 794

Avez-vous effacé /bin ou quelque chose du genre ? Sinon, vous pourriez peut-être bricoler quelque chose avec les utilitaires de texte dans le fichier Coreutils GNU qui devrait être standard sur un système linux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X