.titleBar { margin-bottom: 5px!important; }

vi und nvi auf der Fritzbox

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von haveaniceday, 9 Jan. 2005.

  1. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wurde in einem anderen Thread gefragt...

    Achtung:
    • Es ist einfach die Box mit vi "tot zu legen".
      Mit nvi geht es noch schneller ! nvi überschreibt auch, wenn man nichts geändert hat.
      Einzige "Abbruchmöglichkeit": noch während nvi gestartet ist "Stecker" ziehen.
    • Für die "Text" Dateien unter /var/flash/ auf der Box kann man "nvi <file>" nutzen.
      nvi kopiert die Dateien aus dem Flash passend um.
    • Nie Dateien unter /proc/* mit vi oder nvi editieren. Er sei den ihr wollt einen Briefbeschwerer
    • Nicht alle Befehle sind in der Box verfügbar !

    Note:
    • It's very easy to corrupt the box with vi.
      It's even faster possible with nvi ! nvi overwrites values also if you did not do any changes.

      Only way to stop this: unplug the power _during_ the start of nvi.
    • You can use nvi to edit the text files at /var/flash/
      nvi copies the file from flash to /var/tmp/, edit them with vi and
      is writing the files back indepentand of the changes.
    • Never edit files of /proc/* with vi or nvi. Except you want to create a paperweight.
    • Not all commands of vi are available. It's a busybox vi.

    Einziger Notausgang bei nvi: Stecker ziehen !!
    Only possible emergency action: unplug the power !


    Notausgang bei vi: zweimal "<esc>" dann :q! sollte immer gehen.
    Im Zweifelsfall immer machen und neu editieren.
    Vi reagiert manchmal "allergisch" auf Cursor oder sonstige Tasten !



    Hab die Bedienung von vi nur in "english" in einer alten Mail gefunden.

    vi has 2 modes:
    - command mode
    - editing mode

    Advantage of vi: is at every UNIX available ( default: installed )
    • normally you are in the command mode
      => nearly each single character does an action
      => very confusing if you press key
    • back from editing mode to command mode
      <ESC> ( sometime two times )

      => can give critical situation with "cursor" or function keys.
      => Works only proper if varialbe "TERM" is set right
      => can also fail for modem lines, because of "timing"
      Cause:
      A function key is a "multiple key" like <ESC>[A
      => press key => <ESC> switch to "command mode"
      => [A is interpreted as a command ..
      => oops situation

    Some samples of commands in command mode:

    i => insert at current position
    x => delete character below cursor
    cw => change word ( word ends at "not normal character )
    After word changed => press <ESC> => normal command mode
    o => open new line below current line
    O => open new line above current line
    Y => take line to buffer ( 12Y => take next 12 lines to buffer )
    P => put buffer above current line
    p => put buffer below current line
    dd => delete current lint
    dw => delete word

    /<string> => look forward for <string>
    / => look again
    ?<string> => look backwards for string
    ? => look backwards for last search
    C => change rest of the line ( finish with <ESC> )
    D => delete rest of the line
    A => append to end of line
    a => append after current character

    <address>G => go to line <address>
    1G => go to beginning of file
    $G => go to last line


    <ctrl>f => go to next page
    <ctrl>b => go to previous page


    : => go to command line

    At command line:
    w => write file
    q => quit
    q! => quit if you did changes and do not want to save
    %s/string/replace/g => replace at whole file "string" with "replace"
    12,16s/string/replace/ => replace from line 12 to 16 ( no "g" only first in a line is replaces )
    f => show file name and position
    e! => read file again ( discard changes )
    set list => show tabs as "^I" and line end as "$"
    set nolist => turn set list off

    Edit: deutlichere nvi-Warnung, add some more translation
     
  2. olistudent

    olistudent IPPF-Urgestein

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    14,756
    Zustimmungen:
    2
    Punkte für Erfolge:
    0
    Beruf:
    Softwareentwickler
    Ort:
    Kaiserslautern
  3. 80933

    80933 Neuer User

    Registriert seit:
    31 Okt. 2004
    Beiträge:
    55
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    sehr nützlich, genau was ich gesucht habe kann ich nur jedem empfehlen
     
  4. rannseier

    rannseier Aktives Mitglied

    Registriert seit:
    5 Mai 2004
    Beiträge:
    986
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Gibts eigentlich ein "joe" für die Box?


    MfG,
    Karl
     
  5. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Aus Platzgründen nicht. Ist wahrscheinlich von AVM aus
    sowieso uninteressant einen Editor beizupacken.

    Haveaniceday.
     
  6. Temp

    Temp Neuer User

    Registriert seit:
    2 Jan. 2005
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    sorry kleine frage....
    wo ist denn jetzt genau der unterschied zwischem nvi und vi?

    nvi kopiert um ? :) Wie meinste das denn?

    Gruß Temp
     
  7. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    vi ist ein "UNIX" Standard Editor. Ich habe noch nie ein UNIX ohne dieses Editor gesehen.

    In der Fritzbox sind die Konfigurationsdateien keine normalen Dateien.

    Dieses ist sichtbar an dem "c" am Anfang. ( character special file ) vi ist nicht in der Lage solche Dateien korrekt zu bearbeiten !

    "nvi" ist ein Skript von AVM welches das "special" file in eine normale Datei umkopiert und diese normale Datei dann mit vi bearbeitet. Nach
    dem Beenden vom vi kopiert dieses "wrapper Skript" die Datei zurück in das character special file.


    Diese "character special files" können normalerweise nur mit speziellen Programmen sinnvoll bearbeitet werden.
    Dieser Dateityp wird normalerweise von hardwarenahen Treibern genutzt.

    Das nur ein Teil der Dateien unter /var/flash/ mit nvi bearbeitet werden können ist ein Sonderfall.

    Nie: andere "c" Dateien mit nvi oder anderem bearbeiten ! Ausser du hast eine kompetente Auskunft dass dieses geht !

    Viele Grüße,

    Haveaniceday
     
  8. Temp

    Temp Neuer User

    Registriert seit:
    2 Jan. 2005
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    ah super :)
    vielen dank.
    Jetzt wirds klar :)

    Thx
    Grüße Temp
     
  9. maf-soft

    maf-soft Neuer User

    Registriert seit:
    19 Jan. 2005
    Beiträge:
    96
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    NRW
    nicht immer: wenn man versehendlich nvi mit einer datei gestartet hat, die nicht in /var/flash/ liegt, hilft auch kein :q! - dann hat man den angesprochenen briefbeschwerer.

    wem das als nächstes passiert, sollte vielleicht mal versuchen, sofort die box auszumachen, anstatt vi zu beenden. ich könnte mir vorstellen daß das hilft.

    wo und wie kann man sich eigentlich das nvi script ansehen? (bin linux neuling)
     
  10. digi-daddler

    digi-daddler Mitglied

    Registriert seit:
    3 Nov. 2004
    Beiträge:
    270
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    du fragst:
    which nvi
    antwort: /pfad/von/nvi
    more /pfad/von/nvi
     
  11. maf-soft

    maf-soft Neuer User

    Registriert seit:
    19 Jan. 2005
    Beiträge:
    96
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    NRW
    danke, wieder was gelernt.

    cat $1 >/var/nvi.tmp && vi /var/nvi.tmp && cat /var/nvi.tmp >$1
    rm -f /var/nvi.tmp

    gibt vi irgendwie zurück ob was geändert wurde? wenn ja wie frage ich das ab, bzw. schreibe obiges so um, daß nur in dem fall auch die tmp-datei zurückkopiert wird?
     
  12. clueless

    clueless Mitglied

    Registriert seit:
    7 Mai 2005
    Beiträge:
    243
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Weitere Moeglichkeit, ohne die Box ausschalten zu muessen:

    vi mit CTRL-Z in den Hintergrund schicken, dann ueber ps | grep vi die Process ID ermitteln (erste Zahl in der Zeile), und dann den Prozess mittels kill -9 <ProcessID> abschiessen.
     
  13. CuBe_X

    CuBe_X Neuer User

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    68
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Berlin
    Aha, das ist interessant :idea:
    Wie bekomme ich bloss bei der 7050 FW .62 die debug.cfg editiert :?: :?:
    Es kommt sowohl mit vi als auch mit nvi die Meldung: 'cat: /var/flash/debug.cfg: No such file or directory'. *grübel*
     
  14. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi CuBe_X

    original existiert diese Datei nicht. Was man sieht ist nur das "Special File"

    Anlegen und auch leeren der Datei:
    echo > /var/flash/debug.cfg

    Viele Grüße,

    Haveaniceday
     
  15. CuBe_X

    CuBe_X Neuer User

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    68
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Berlin
    Vielen Dank für die vielen freundlichen Auskünfte ;)

    Nur dieses frage ich mich noch...

    Die ar7.cfg existiert auf meiner Box mehrfach, nämlich (herausgefunden mit "find / -name ar7.cfg"):

    /etc/default.Fritz_Box_FON_2_WLAN/1und1/ar7.cfg
    /etc/default.Fritz_Box_FON_2_WLAN/avm/ar7.cfg
    /var/flash/ar7.cfg

    Die debug.cfg gibt es jedoch nur einmal, nämlich
    /var/flash/debug.cfg

    Wozu ist dann das character Device vorhanden wenn es eigentlich keine debug.cfg gibt?
    Wozu werden an dieser Stelle überhaupt character Devices benutzt? Irgendwie fehlt mir da noch der Durchblick :roll:

    Hab Dank im Voraus ;)
     
  16. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi CuBe_X,

    die ar7.cfg Dateien unter /etc/* sind die default Dateien für "nach Werksreset".
    Die Ablage der Dateien ist nach meinem Verständnis folgende:

    - AVM tffs-Filesystem => Treiber für character device : major/minor: c 254/*
    AVM nutzt mtd3 und mtd4 um das tffs zu speichern.
    - "Special files" angelegt mit mknod <filename> c 254 * sprechen den Treiber an.
    - Anlegen per mknod geschieht beim Boot

    Der Filesystemtreiber ist also unabhängig von der Sichtbarkeit, genauso kann
    per "mknod..." ein special File angelegt sein, ohne dass das File in dem Filesystem existitiert.

    Deshalb sieht man /var/flash/debug.cfg immer. Eventuell existiert die Datei beim
    Bearbeiten mit nvi nicht.

    Haveaniceday
     
  17. targa

    targa Mitglied

    Registriert seit:
    6 März 2005
    Beiträge:
    285
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Ort:
    AC
    evtl. sollte man als erste zeile noch

    cat $1 >/var/backup.tmp

    einfügen, so dass man immernoch eine sicherungskopie hat. Evtl. eine Abfrage ob der filetype richtig ist?!

    //to.
     
  18. haveaniceday

    haveaniceday Aktives Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    1,305
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Filetypabfrage ist nicht in der busybox ( Platz.. )
    Backup: "Aufräumen" hat bei mir Vorrang. Ist aber eine Geschmackssache...

    Haveaniceday
     
  19. crusader

    crusader Mitglied

    Registriert seit:
    28 Okt. 2004
    Beiträge:
    425
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Valdecruz
  20. johnyt11

    johnyt11 Neuer User

    Registriert seit:
    27 Aug. 2004
    Beiträge:
    120
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    gibts in der FBF ein Befehl wie dir ?