Ni
xdg-open some_file
ni
$EDITOR some_file
est infaillible, sauf si vous DÉFINISSEZ «par défaut» comme quoi ils invoquent, ce qui n'est pas le sens dans lequel il est couramment utilisé.
Par exemple, sur mes systèmes xéniaux:
Je n'ai pas de variable EDITOR globale définie:
$ env | grep EDITOR
$ echo $EDITOR
$
$EDITOR some_file
Échoue donc complètement dans un environnement graphique (x & openbox, dans lxterminal) ou dans un tty.
Dans un environnement GUI xdg-open some_file
ouvre le fichier dans vi. En clair, il tente de faire de même, mais échoue. Mais vi n'est pas mon éditeur "par défaut" dans le sens où le mot est le plus utilisé. Tous les gestionnaires de fichiers que j'ai installés conviennent que mon éditeur par défaut est ed
(non, pas QUE ed
- si j'étais aussi masochiste que j'utiliserais vi
, ed
c'est un script que j'ai écrit).
Il peut y avoir une justification pour définir "par défaut" en termes de l'une ou l'autre de ces commandes, mais dans l'usage général de la grande majorité des utilisateurs, "par défaut" est un adjectif appliqué à tout programme ouvrant un fichier lorsque vous doublez ou simple clic dessus dans un navigateur de fichiers gui (comme Nautilus, Pcmanfm, Thunar, etc.), (double ou simple selon les paramètres de ce navigateur de fichiers PARTICULIER). Ou bien, quel que soit le programme qui ouvre le fichier lorsque vous le mettez en surbrillance et appuyez sur Entrée dans un navigateur de fichiers orthodoxe comme Midnight Commander.
Ainsi, dans l'utilisation la plus courante de "par défaut", vous pouvez avoir une valeur par défaut différente pour chaque navigateur de fichiers, et lorsque vous parlez de défaut sans qualification, cela signifie quelle est la valeur par défaut dans le navigateur de fichiers par défaut. Et le navigateur de fichiers par défaut dans un environnement graphique serait celui qui s'ouvre si vous double-cliquez sur un répertoire (aka "dossier") ou un lien symbolique vers un répertoire sur le bureau, ou si vous n'utilisez pas la métaphore du bureau, peut-être celui le plus en vedette dans un menu. Pour autant que je sache, dans ce sens, qui est l'usage normal du monde réel, la réponse de Sumeet Deshmukh est totalement correcte et totalement complète. Cela peut aussi être dans le sens le plus abstrait.
Dans un environnement non graphique, en dehors d'un gestionnaire de fichiers orthodoxe, le bon sens du mot "par défaut", appliqué à un éditeur, n'a pas d'application normale. Personne travaillant dans tty n'invoque un éditeur avec xdg-open some_file
ou à $EDITOR some_file
moins qu'il ne travaille sur la machine de quelqu'un d'autre, ne veut rien installer et est devenu désespéré. Ils ouvrent un éditeur en invoquant directement celui qu'ils souhaitent ouvrir, PAR NOM. S'ils obtiennentbash: gedit: command not found
ils essaient leur deuxième favori, etc. La valeur par défaut n'est pas pertinente. Tout ce qui compte, ce sont leurs préférences et ce qui est installé ou peut être installé.
Le point principal:
. . . gksu gedit /path/file.txt qui ne fonctionnera pas car gedit n'est pas l'éditeur de texte par défaut. . . .
Faux. Et c'est pourquoi j'ai posté, pour expliquer pourquoi cette déclaration est fausse et pourquoi cette commande a échoué. L'éditeur par défaut, quelle que soit votre définition, n'est pas pertinent.
Pour que cette commande fonctionne, vous avez besoin de 2 choses:
Les deux programmes gksu
et gedit
doivent être installés sur le système.
Vous devez disposer des autorisations appropriées pour le fichier et ses répertoires ancestraux. Vous devez avoir x sur tous les répertoires du chemin, au moins r sur le fichier lui-même et probablement au moins r sur le répertoire parent. Certains éditeurs peuvent exiger w sur le fichier ou même sur le répertoire parent, bien qu'ils ne le devraient pas.
Vous devriez être en mesure de dire pourquoi la commande a échoué en lisant le message d'erreur. Si vous aimez gedit, installez-le.
Mais gksu est dangereux. Utilisez gksudo si vous en avez besoin. Mais n'utilisez aucune des commandes de type su / sudo / gksu / gksudo / pkexec, sauf si la commande qui suit échoue sans elle. Et même alors, seulement si cela DEVRAIT avoir échoué. Si cela devait fonctionner, utiliser une commande sudo-ish pour le faire fonctionner est comme "Si ça ne va pas, obtenez un plus gros marteau". Cela créera plus de problèmes en cours de route. Dans ce cas, corrigez les autorisations et essayez de comprendre pourquoi elles se sont trompées en premier lieu.
Les commandes de type sudo ne sont pas non plus omnipotentes. Parfois, vous DEVEZ modifier les autorisations avant de pouvoir modifier le fichier même AVEC gksudo.
Concernant les dangers d' gksu
écouter Paddy qui a commenté la réponse de Sumeet. C'est un gars sage qui existe depuis un certain temps. Répétition de ses 3 liens:
https://askubuntu.com/a/288506/2088
https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676
http://ubuntuforums.org/showthread.php?t=1819589