Ни
xdg-open some_file
ни
$EDITOR some_file
является надежным, если только вы не ОПРЕДЕЛЯЕТЕ "default" как то, что они вызывают, что не является тем смыслом, в котором оно обычно используется.
Например, в моих системах windows:
У меня нет определенной глобальной переменной РЕДАКТОРА:
$ env | grep EDITOR$ echo $EDITOR$
Так $EDITOR some_file
сбой полностью происходит либо в среде gui (x &openbox, в lxterminal), либо в tty.
В среде графического интерфейса пользователя xdg-open some_file
открывает файл в vi. В обычном tty он ПЫТАЕТСЯ сделать то же самое, но терпит неудачу. Но vi не является моим редактором "по умолчанию" в том смысле, в каком это слово чаще всего используется. Все установленные мной файловые менеджеры согласны с тем, что мой редактор по умолчанию ed
(нет, не ТО ed
- если бы я был таким мазохистом, я бы использовал vi
, мой ed
это сценарий, который я написал).
Может быть оправдание для определения "по умолчанию" в терминах той или иной из этих команд, но в общем использовании подавляющего большинства пользователей "по умолчанию" - это прилагательное, применяемое к любой программе, открывающей файл, когда вы дважды или один раз щелкаете по нему в браузере файлов с графическим интерфейсом (как Nautilus, Pcmanfm, Thunar и т.д.), (двойной или одинарный в зависимости от настроек в этом конкретном файловом браузере). Или, с другой стороны, любая программа открывает файл, когда вы выделяете его и нажимаете enter в ортодоксальном файловом браузере, таком как Midnight Commander.
Итак, при наиболее распространенном использовании "по умолчанию" у вас может быть разное значение по умолчанию для каждого файлового браузера, и когда вы говорите о значении по умолчанию без оговорок, это означает то, что используется по умолчанию в файловом браузере по умолчанию. А файловым браузером по умолчанию в графической среде будет тот, который открывается, если вы дважды щелкнете по каталогу (он же "папка") или символической ссылке на каталог на рабочем столе, или, если вы не используете метафору рабочего стола, возможно, наиболее часто используемый в меню. Насколько я знаю, в этом смысле, который является нормальным использованием в реальном мире, ответ Сумита Дешмука абсолютно правильный и полностью полный. Это может быть и в более абстрактных смыслах.
В неграфической среде, за пределами ортодоксального файлового менеджера, обычный смысл слова "по умолчанию", применяемый к редактору, не имеет нормального применения. Никто, работающий в tty, не вызывает редактор с xdg-open some_file
или $EDITOR some_file
если только они не работают на чужой машине, не хотят ничего устанавливать и не впали в отчаяние. Они открывают редактор, напрямую вызывая тот, который они хотят открыть, ПО ИМЕНИ. Если они получат bash: gedit: command not found
они пробуют свое второе любимое блюдо и так далее. Что такое значение по умолчанию, не имеет значения. Все, что имеет значение, - это их предпочтения и то, что установлено или может быть установлено.
Главный Момент:
. . . gksu gedit /path/file.txt который не будет работать, потому что gedit не является текстовым редактором по умолчанию . . . .
Неправильный. И именно поэтому я опубликовал сообщение, чтобы объяснить, почему это утверждение неверно и почему эта команда не удалась. Что такое редактор по умолчанию, как бы вы его ни определяли, не имеет значения.
Чтобы эта команда сработала, вам нужно 2 вещи:
Обе программы, gksu
и gedit
, должен быть установлен в системе.
У вас должны быть соответствующие разрешения для файла и его наследственных каталогов. У вас должно быть x во всех каталогах в пути, по крайней мере, r в самом файле и, вероятно, по крайней мере r в родительском каталоге. Некоторым редакторам может потребоваться w для файла или даже для родительского каталога, хотя это не обязательно.
Вы должны быть в состоянии определить, почему команда завершилась неудачей, прочитав сообщение об ошибке. Если вам нравится gedit, установите его.
Но гксу опасен. Используйте gksudo, если вам это нужно. Но не используйте ни одну из команд типа su/sudo/gksu/gksudo/pkexec, если только следующая команда не завершится неудачей без нее. И даже тогда, только если это ДОЛЖНО было провалиться. Если это должно было сработать, использовать какую-нибудь команду sudo-ish, чтобы заставить его работать, похоже на "Если он не подходит, возьмите молоток побольше". Это создаст еще больше проблем в будущем. В этом случае исправьте разрешения и попытайтесь выяснить, почему они были неправильными в первую очередь.
Ни одна из команд типа sudo также не является всемогущей. Иногда вам НЕОБХОДИМО изменить разрешения, прежде чем вы сможете редактировать файл даже С помощью gksudo.
Что касается опасностей, связанных с gksu
послушайте Пэдди, который прокомментировал ответ Сумита. Он мудрый парень, который уже давно здесь. Повторяя его 3 ссылки:
https://askubuntu.com/a/288506/2088https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676http://ubuntuforums.org/showthread.php?t=1819589