Ні
xdg-open some_file
ні
$EDITOR some_file
є надійним, якщо ви не визначите "за замовчуванням" як би вони не посилалися, що не є сенсом, у якому він зазвичай використовується.
Наприклад, на моїх ксеніальних системах:
У мене не визначена глобальна змінна EDITOR:
$ env | grep EDITOR
$ echo $EDITOR
$
Так $EDITOR some_file
не виходить повністю ні в середовищі gui (x & openbox, ні в lxterminal), ні в tty.
У середовищі gui xdg-open some_file
відкривається файл in vi. У простій формі, вона намагається зробити те саме, але не вдається. Але vi не є моїм "за замовчуванням" редактором у тому сенсі, яке найчастіше використовується слово. Усі файлові менеджери, які я встановив, погоджуються, що моїм редактором за замовчуванням є ed
(ні, не ТО ed
- якби я мазохістський, який би я використовував vi
, мій ed
сценарій, який я написав).
Може бути виправданням для визначення "за замовчуванням" в рамках однієї чи іншої цих команд, але в загальному використанні переважної більшості користувачів "за замовчуванням" є прикметником, застосованим до будь-якої програми, що відкриває файл, коли ви подвоюєте або одним натисканням на нього у браузері файлів gui (наприклад, 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 для MAKE, це працює так, як "Якщо він не підходить, дістаньте більший молоток". Це створить більше проблем у дорозі. У такому випадку виправте дозволи, і спробуйте розібратися, чому вони помилялися в першу чергу.
Також жодна з команд типу sudo не є всесильною. Іноді ви ОБОВ'ЯЗКОВО змінити дозволи, перш ніж ви зможете редагувати файл навіть з gksudo.
Щодо небезпеки gksu
слухати Падді, який прокоментував відповідь Сумета. Він - мудрий хлопець, який був деякий час. Повторюючи його 3 посилання:
https://askubuntu.com/a/288506/2088
https://bugs.launchpad.net/ubuntu/+source/gksu/+bug/1186676
http://ubuntuforums.org/showthread.php?t=1819589