Weder
xdg-open some_file
Noch
$EDITOR some_file
ist narrensicher, es sei denn, Sie DEFINIEREN "default" als das, was sie aufrufen, was nicht der Sinn ist, in dem es allgemein verwendet wird.
Zum Beispiel auf meinen Xenial-Systemen:
Ich habe keine globale EDITOR-Variable definiert:
$ env | grep EDITOR
$ echo $EDITOR
$
So $EDITOR some_file
versagt vollständig entweder in einer GUI - Umgebung (x & openbox, in LXTerminal) oder in einem tty.
In einer GUI-Umgebung xdg-open some_file
öffnet sich die Datei in vi. Kurz gesagt, es VERSUCHT, dasselbe zu tun, schlägt jedoch fehl. Aber vi ist nicht mein "Standard" -Editor in dem Sinne, dass das Wort am häufigsten verwendet wird. Alle von mir installierten Dateimanager stimmen darin überein, dass mein Standardeditor lautet ed
(nein, nicht DIESES ed
- wenn ich so masochistisch wäre vi
, wäre mein ed
Skript ein Skript, das ich geschrieben habe).
Es mag eine Rechtfertigung dafür geben, "default" in Bezug auf den einen oder anderen dieser Befehle zu definieren, aber in der allgemeinen Verwendung der großen Mehrheit der Benutzer ist "default" ein Adjektiv, das auf jedes Programm angewendet wird, das eine Datei öffnet, wenn Sie double oder Klicken Sie einfach in einem GUI-Dateibrowser (wie Nautilus, Pcmanfm, Thunar usw.) darauf (doppelt oder einfach, abhängig von den Einstellungen in diesem PARTICULAR-Dateibrowser). Alternativ kann jedes Programm die Datei öffnen, wenn Sie sie markieren und in einem orthodoxen Dateibrowser wie Midnight Commander die Eingabetaste drücken.
In der gebräuchlichsten Verwendung von "Standard" können Sie für jeden Dateibrowser einen anderen Standard festlegen. Wenn Sie von einem Standard ohne Einschränkung sprechen, bedeutet dies, dass der Standard des Standarddateibrowsers verwendet wird. Der Standarddateibrowser in einer grafischen Umgebung wird geöffnet, wenn Sie auf ein Verzeichnis (auch als "Ordner" bezeichnet) oder einen Symlink zu einem Verzeichnis auf dem Desktop doppelklicken oder wenn Sie die Desktop-Metapher nicht verwenden die in einem Menü am meisten vorgestellten. Soweit ich weiß, ist die Antwort von Sumeet Deshmukh in diesem Sinne, wie es in der realen Welt üblich ist, völlig richtig und vollständig. Es kann auch im abstrakteren Sinne sein.
In einer nicht-grafischen Umgebung außerhalb eines orthodoxen Dateimanagers hat der auf einen Editor angewendete allgemeine Sinn des Wortes "Standard" keine normale Anwendung. Niemand, der in tty arbeitet, ruft einen Editor mit xdg-open some_file
oder auf, es $EDITOR some_file
sei denn, er arbeitet auf dem Computer eines anderen, möchte nichts installieren und ist verzweifelt. Sie öffnen einen Editor, indem sie den zu öffnenden Editor direkt NACH NAMEN aufrufen. Wenn sie es bekommen bash: gedit: command not found
, versuchen sie es mit ihrem zweiten Favoriten usw. Was der Standard ist, ist irrelevant. Alles, was zählt, sind ihre Einstellungen und was installiert ist oder installiert werden kann.
Der Hauptpunkt:
. . . gksu gedit /path/file.txt funktioniert nicht, da gedit nicht der Standardtexteditor ist. . . .
Falsch. Und deshalb habe ich gepostet, um zu erklären, warum diese Aussage falsch ist und warum dieser Befehl fehlgeschlagen ist. Was der Standardeditor ist, wie Sie ihn auch definieren, ist irrelevant.
Damit dieser Befehl funktioniert, benötigen Sie zwei Dinge:
Beide Programme gksu
und gedit
müssen auf dem System installiert sein.
Sie müssen über die entsprechenden Berechtigungen für die Datei und die übergeordneten Verzeichnisse verfügen. Sie müssen x für alle Verzeichnisse im Pfad haben, mindestens r für die Datei selbst und wahrscheinlich mindestens r für das übergeordnete Verzeichnis. Einige Editoren benötigen möglicherweise w für die Datei oder sogar für das übergeordnete Verzeichnis, obwohl dies nicht der Fall sein sollte.
Sie sollten in der Lage sein zu erkennen, warum der Befehl fehlgeschlagen ist, indem Sie die Fehlermeldung lesen. Wenn Sie gedit mögen, installieren Sie es.
Aber gksu ist gefährlich. Verwenden Sie Gksudo, wenn Sie es brauchen. Verwenden Sie jedoch keinen der Befehle vom Typ su / sudo / gksu / gksudo / pkexec, es sei denn, der folgende Befehl schlägt fehl. Und selbst dann nur, wenn es fehlgeschlagen sein SOLLTE. Wenn es geklappt haben sollte, funktioniert es mit einem sudo-ish-Befehl wie "Wenn es nicht passt, holen Sie sich einen größeren Hammer". Es wird später mehr Probleme geben. Korrigieren Sie in diesem Fall die Berechtigungen und versuchen Sie herauszufinden, warum sie überhaupt falsch waren.
Keiner der Befehle vom Typ sudo ist allmächtig. Manchmal MÜSSEN Sie die Berechtigungen ändern, bevor Sie die Datei sogar MIT gksudo bearbeiten können.
Was die Gefahren gksu
angeht, Paddy zuzuhören, der Sumeets Antwort kommentierte. Er ist ein weiser Kerl, der schon eine Weile hier ist. Wiederholung seiner 3 Links:
https://askubuntu.com/a/288506/2088
https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676
http://ubuntuforums.org/showthread.php?t=1819589