web-dev-qa-db-fra.com

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

Existe-t-il un moyen de modifier un fichier s’il n’existe pas vi, vim, joe, mcedit? En d'autres termes, existe-t-il un moyen de modifier un fichier en utilisant uniquement les commandes du shell?

30
Eduard Florinescu

Dans ce cas, j'essaierais de transférer des fichiers et de les éditer sur un autre ordinateur, puis de les transférer à nouveau. Si vous avez ssh, vous devriez avoir scp (j'espère), vous devriez donc pouvoir envoyer des fichiers. Sinon, vous pouvez également rechercher via ftp le transfert des fichiers.

Si ce n'est pas le cas, alors je pense que votre meilleure option est d'essayer d'utiliser les redirections cat, grep, sed, echo et I/O (surtout avec append avec >>). Et beaucoup de fichiers temporaires.

Bien que si vous avez accès à Perl (ou quelque chose de similaire), vous pouvez l'exécuter sans arguments et cela vous permettra de saisir une source de script à partir d'une entrée standard. Une fois que vous appuyez sur ctrl + d, il peut ensuite exécuter le script. Vous pouvez utiliser cette méthode pour créer un fichier. Ce serait plus puissant que de pirater quelque chose sur la ligne de commande, comme je l'ai déjà mentionné.

17
Ben Richards

J'imagine que vous pouvez faire ce dont vous avez besoin avec grep et Perl - cherchez la ligne que vous voulez avec grep, éditez cette ligne avec Perl (Perl peut agir comme un gros remplacement pour sed), puis confirmez que vous n'avez pas apporté plus de modifications que vous. prévu en faisant diff filename filename.new. Si oui, rendre les modifications permanentes - mv filename.new filename

4
AlexWebr

En supposant que vous soyez SSH dans votre routeur, vous pouvez également utiliser divers utilitaires pour transférer le fichier en quatrième et en quatrième sur votre ordinateur/routeur. Vous pouvez télécharger une copie sur votre PC, la modifier, puis la renvoyer par SSH au routeur via SFTP (voir PuTTY ou WinSCP si vous utilisez Windows).

Si vous utilisez un firmware personnalisé sur le routeur/passerelle, vous aurez peut-être de la chance. Il existe différents packages Optware contenant des éditeurs de texte simples (et petits). En fonction de vos besoins, vous pouvez obtenir le package nano ou simplement choisir busybox qui contient vi.

3
Breakthrough

Une façon serait de produire le résultat d'un écho.

echo "foo" > bar.txt

Cela créera un fichier intitulé bar.yxy avec le texte contenant "foo".

2
Landon

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

1
bobmagoo