Nvi

From Fritz!Box
Jump to: navigation, search

AVM Wiki >> Shell-Befehle >> nvi @ whmf   -   IRC-Chat   -   hu nl it English
Community Modelle Zubehör Environment Konfiguration Shell-Befehle Software Freetz Lexikon Tipps+Tricks Bilder

Startup-Scripts AVM-Befehle BusyBox-Befehle Linux-Befehle Shared Libraries Kernel-Module Listings Todo

Contents

Befehl

Die Konfigurationsdateien in /var/flash befinden sich im TFFS Dateisystem und unterscheiden sich in vieler Hinsicht von normalen Dateien und bedürfen deshalb auch der Sonderbehandlung. Sie sind sogenannte Character-Devices, die man daran erkennt das beim Listen mit ls -l links ein kleines c Ausgegeben wird.

# ls -l /var/flash/ar7.cfg
crw-r--r--    1 root     root     240, 113 Jul  3 01:57 /var/flash/ar7.cfg

Auch lässt sich ihre Größe nicht ablesen, an der Stelle stehen 2 mit Komma getrennte Zahlen die man Major und Minor nennt und die einem normalerweise nicht viel sagen. Eine weitere Besonderheit ist auch das eine Datei gelistet wird auch wenn sie garnicht vorhanden ist. Um zu wissen wie groß eine Datei ist oder ob sie überhaupt existiert muss man sie ganz lesen, und zwar mit einem Befehl der nicht auf Größenangaben angewiesen ist sondern eine Quelle ließt bis sie zuende ist. Dazu nimmt man cat, speichert die Konfiguration vorübergehend irgendwohin, ändert sie, und speichert sie wieder mit cat zurück.

# cat /var/flash/ar7.cfg > /var/nvi.tmp
# vi /var/nvi.tmp
# cat /var/nvi.tmp > /var/flash/ar7.cfg

Da dies etwas aufwendig ist gibt es das Helferscript nvi das einem diese Arbeit vereinfacht:

# nvi /var/flash/ar7.cfg

Dabei wird die zu editierende Datei auf eine temporäre Datei (nvi.tmp) umkopiert und vi für die temporäre Datei aufgerufen. Nach erfolgreicher vi-Sitzung wird die temporäre Datei über die Originaldatei zurückkopiert und die temporäre Datei gelöscht. nvi sollte nur verwendet werden um die Konfigurationsdateien unter /var/flash zu bearbeiten.

Der Wrapper gibt - anders als vi selbst - eine Fehlermeldung aus, wenn die aufgerufene Datei noch nicht vorhanden ist. Hat man hier eine Fehlermeldung, so kann das Anlegen der Datei mit

echo > /pfad/zur/datei      (echo gibt das aus was man danach schreibt, der Parameter > lenkt es um, und hier eben in eine Datei)

    oder

touch /pfad/zur/datei       (berühren, eigentlich um neues modified-Datum zu setzen)

erfolgen. Danach klappt auch der Aufruf mit nvi.

Aufgerufen von

Tempfiles

Aufruf

use: /usr/bin/nvi <config-filename>

Beispiele

TODO

Siehe auch