Графические отображения в файлах .cshrc или .login

Я решил следовать учебнику UNIX, чтобы понять мой Kubuntu немного больше, в восьмой главе учебника, мне рекомендуется

ПРЕДУПРЕЖДЕНИЕ: НИКОГДА не ставьте команды, которые запускают графические дисплеи (например, веб-сайт браузер) в файле .cshrc или .login.

Я сразу же искал информацию о том, почему я не должен этого делать, однако я ничего не нашел об этом.

Кто-нибудь может сказать мне, в чем проблема с запуском графических дисплеев в файлах .cshrc или .login?

2
задан 6 September 2017 в 04:46

3 ответа

По умолчанию в Kubuntu этот совет по этим конкретным файлам не так важен, потому что ваша оболочка по умолчанию - оболочка, которую вы получаете, когда вы (а) входите в систему или (б) открываете окно Konsole или другой эмулятор терминала - Не реализована реализация csh, например bsd-csh или tcsh. Это вместо bash, оболочка в стиле Бурна. Вы, конечно же, можете использовать оболочку типа tcsh, хотя сначала вам нужно ее установить - Ubuntu и ее официальные производные, такие как Kubuntu, даже не поставляются с такой оболочкой, хотя они включены в официальные репозитории. Если вы ставите команды в .cshrc или .login, вы не должны ожидать, что они будут запущены в вашей системе Kubuntu. Возможно, вы можете настроить KDE для этого. Но просто переключение вашей оболочки входа в систему не достигнет этого - вход в систему из графического диспетчера отображений обычно не вызывает запуск раковины, такой как tcsh, или файлы конфигурации C Shell.

Итак, в ваша ситуация - и подавляющее большинство пользователей Ubuntu - есть лишняя причина, чтобы не помещать команды, которые запускают графические программы в этих файлах. Они не будут работать, когда вы захотите. Однако файл, названный .profile в вашем домашнем каталоге, управляется оболочками стиля Bourne, такими как bash, когда они запускаются как оболочки для входа, и эти команды также, хотя в основном по традиции, выполняются в По умолчанию [ ! d1], когда вы входите в систему. И советы в этом учебном пособии масштабируются до .profile и любых других файлов, которые специально не предназначены для того, чтобы содержать команды, которые запускаются в графическом сеансе, который уже запущен. Это реализация csh . Они будут работать, когда вы этого не хотите.

Во-первых, основы: если вы ставите команды, которые запускают графические программы в файлы confiiguration, которые запускаются для всех оболочек входа, попытки запуска программ обычно выполняются, когда вы входите в систему, даже если вы входите в систему, используя метод, в котором они не могут работать. Если вы помещаете команды в файл конфигурации, который запускает , это означало время, когда вы запускаете свою оболочку, даже если она не работает в качестве оболочки входа - для bash, .bashrc - такой файл- - тогда они будут запускаться всякий раз, когда вы открываете новую оболочку. Представьте, что Firefox работает, снова и снова, каждый раз, когда вы открываете вкладку Konsole, а также предоставляете вам ошибки при каждом входе в виртуальную консоль или SSH или при имитации входа с sudo -i your-username или su - your-username.

Более глубокая проблема заключается в следующем: Они не будут запускаться, когда вы захотите. графический сеанс настроен для запуска команд из файла, чтобы инициализировать сеанс рабочего стола, и те команды пытаются запустить графические программы до того, как будут настроены другие настройки, чтобы они работали правильно, вы можете получить неожиданные результаты. Если они работают достаточно рано, у вас возникает такая же проблема, как если бы это была не графическая сессия вообще. Немного позже, и программы могут начаться до того, как начнутся элементы пользовательского интерфейса, такие как ваши панели, что будет путать, и может привести к некорректному поведению, даже если specific запускается все.

Последние версии Kubuntu использует рабочие поверхности KDE Plasma Workspaces. Если у вас есть графические программы, которые вы хотите запускать каждый раз, когда вы входите в графический интерфейс своей системы Kubuntu, вы можете перейти в «Запуск и завершение работы» → «Автозапуск» и добавить их. Вот как я рекомендую вам это сделать. Или вы можете вручную поместить файл .desktop, символическую ссылку или оболочку script1 в ~/.config/autostart (где ~ означает ваш домашний каталог), который является папкой по умолчанию для автозапуска. bsd-csh , поэтому большую часть времени вы ничего не выиграете, «сделав это сами». См. Также документацию KDE.

1 Или любой другой исполняемый файл, но они наиболее распространены. Обычно вы не должны копировать программу в этот каталог. Одной из причин этого является то, что при обновлении программы вы все равно будете запускать старый двоичный файл (возможно, в сочетании с поддержкой файлов, относящихся к более новым версиям).

2
ответ дан 22 May 2018 в 18:45
  • 1
    НИКОГДА, в первый раз, я чувствую, что мой вопрос настолько ценен для получения такого подробного ответа. СПАСИБО. – Hans 6 September 2017 в 07:16

По умолчанию в Kubuntu этот совет по этим конкретным файлам не так важен, потому что ваша оболочка по умолчанию - оболочка, которую вы получаете, когда вы (а) входите в систему или (б) открываете окно Konsole или другой эмулятор терминала - Не реализована реализация csh, например bsd-csh или tcsh. Это вместо bash, оболочка в стиле Бурна. Вы, конечно же, можете использовать оболочку типа tcsh, хотя сначала вам нужно ее установить - Ubuntu и ее официальные производные, такие как Kubuntu, даже не поставляются с такой оболочкой, хотя они включены в официальные репозитории. Если вы ставите команды в .cshrc или .login, вы не должны ожидать, что они будут запущены в вашей системе Kubuntu. Возможно, вы можете настроить KDE для этого. Но просто переключение вашей оболочки входа в систему не достигнет этого - вход в систему из графического диспетчера отображений обычно не вызывает запуск раковины, такой как tcsh, или файлы конфигурации C Shell.

Итак, в ваша ситуация - и подавляющее большинство пользователей Ubuntu - есть лишняя причина, чтобы не помещать команды, которые запускают графические программы в этих файлах. Они не будут работать, когда вы захотите. Однако файл, названный .profile в вашем домашнем каталоге, управляется оболочками стиля Bourne, такими как bash, когда они запускаются как оболочки для входа, и эти команды также, хотя в основном по традиции, выполняются в По умолчанию [ ! d1], когда вы входите в систему. И советы в этом учебном пособии масштабируются до .profile и любых других файлов, которые специально не предназначены для того, чтобы содержать команды, которые запускаются в графическом сеансе, который уже запущен. Это реализация csh . Они будут работать, когда вы этого не хотите.

Во-первых, основы: если вы ставите команды, которые запускают графические программы в файлы confiiguration, которые запускаются для всех оболочек входа, попытки запуска программ обычно выполняются, когда вы входите в систему, даже если вы входите в систему, используя метод, в котором они не могут работать. Если вы помещаете команды в файл конфигурации, который запускает , это означало время, когда вы запускаете свою оболочку, даже если она не работает в качестве оболочки входа - для bash, .bashrc - такой файл- - тогда они будут запускаться всякий раз, когда вы открываете новую оболочку. Представьте, что Firefox работает, снова и снова, каждый раз, когда вы открываете вкладку Konsole, а также предоставляете вам ошибки при каждом входе в виртуальную консоль или SSH или при имитации входа с sudo -i your-username или su - your-username.

Более глубокая проблема заключается в следующем: Они не будут запускаться, когда вы захотите. графический сеанс настроен для запуска команд из файла, чтобы инициализировать сеанс рабочего стола, и те команды пытаются запустить графические программы до того, как будут настроены другие настройки, чтобы они работали правильно, вы можете получить неожиданные результаты. Если они работают достаточно рано, у вас возникает такая же проблема, как если бы это была не графическая сессия вообще. Немного позже, и программы могут начаться до того, как начнутся элементы пользовательского интерфейса, такие как ваши панели, что будет путать, и может привести к некорректному поведению, даже если specific запускается все.

Последние версии Kubuntu использует рабочие поверхности KDE Plasma Workspaces. Если у вас есть графические программы, которые вы хотите запускать каждый раз, когда вы входите в графический интерфейс своей системы Kubuntu, вы можете перейти в «Запуск и завершение работы» → «Автозапуск» и добавить их. Вот как я рекомендую вам это сделать. Или вы можете вручную поместить файл .desktop, символическую ссылку или оболочку script1 в ~/.config/autostart (где ~ означает ваш домашний каталог), который является папкой по умолчанию для автозапуска. bsd-csh , поэтому большую часть времени вы ничего не выиграете, «сделав это сами». См. Также документацию KDE.

1 Или любой другой исполняемый файл, но они наиболее распространены. Обычно вы не должны копировать программу в этот каталог. Одной из причин этого является то, что при обновлении программы вы все равно будете запускать старый двоичный файл (возможно, в сочетании с поддержкой файлов, относящихся к более новым версиям).

2
ответ дан 18 July 2018 в 07:21

По умолчанию в Kubuntu этот совет по этим конкретным файлам не так важен, потому что ваша оболочка по умолчанию - оболочка, которую вы получаете, когда вы (а) входите в систему или (б) открываете окно Konsole или другой эмулятор терминала - Не реализована реализация csh, например bsd-csh или tcsh. Это вместо bash, оболочка в стиле Бурна. Вы, конечно же, можете использовать оболочку типа tcsh, хотя сначала вам нужно ее установить - Ubuntu и ее официальные производные, такие как Kubuntu, даже не поставляются с такой оболочкой, хотя они включены в официальные репозитории. Если вы ставите команды в .cshrc или .login, вы не должны ожидать, что они будут запущены в вашей системе Kubuntu. Возможно, вы можете настроить KDE для этого. Но просто переключение вашей оболочки входа в систему не достигнет этого - вход в систему из графического диспетчера отображений обычно не вызывает запуск раковины, такой как tcsh, или файлы конфигурации C Shell.

Итак, в ваша ситуация - и подавляющее большинство пользователей Ubuntu - есть лишняя причина, чтобы не помещать команды, которые запускают графические программы в этих файлах. Они не будут работать, когда вы захотите. Однако файл, названный .profile в вашем домашнем каталоге, управляется оболочками стиля Bourne, такими как bash, когда они запускаются как оболочки для входа, и эти команды также, хотя в основном по традиции, выполняются в По умолчанию [ ! d1], когда вы входите в систему. И советы в этом учебном пособии масштабируются до .profile и любых других файлов, которые специально не предназначены для того, чтобы содержать команды, которые запускаются в графическом сеансе, который уже запущен. Это реализация csh . Они будут работать, когда вы этого не хотите.

Во-первых, основы: если вы ставите команды, которые запускают графические программы в файлы confiiguration, которые запускаются для всех оболочек входа, попытки запуска программ обычно выполняются, когда вы входите в систему, даже если вы входите в систему, используя метод, в котором они не могут работать. Если вы помещаете команды в файл конфигурации, который запускает , это означало время, когда вы запускаете свою оболочку, даже если она не работает в качестве оболочки входа - для bash, .bashrc - такой файл- - тогда они будут запускаться всякий раз, когда вы открываете новую оболочку. Представьте, что Firefox работает, снова и снова, каждый раз, когда вы открываете вкладку Konsole, а также предоставляете вам ошибки при каждом входе в виртуальную консоль или SSH или при имитации входа с sudo -i your-username или su - your-username.

Более глубокая проблема заключается в следующем: Они не будут запускаться, когда вы захотите. графический сеанс настроен для запуска команд из файла, чтобы инициализировать сеанс рабочего стола, и те команды пытаются запустить графические программы до того, как будут настроены другие настройки, чтобы они работали правильно, вы можете получить неожиданные результаты. Если они работают достаточно рано, у вас возникает такая же проблема, как если бы это была не графическая сессия вообще. Немного позже, и программы могут начаться до того, как начнутся элементы пользовательского интерфейса, такие как ваши панели, что будет путать, и может привести к некорректному поведению, даже если specific запускается все.

Последние версии Kubuntu использует рабочие поверхности KDE Plasma Workspaces. Если у вас есть графические программы, которые вы хотите запускать каждый раз, когда вы входите в графический интерфейс своей системы Kubuntu, вы можете перейти в «Запуск и завершение работы» → «Автозапуск» и добавить их. Вот как я рекомендую вам это сделать. Или вы можете вручную поместить файл .desktop, символическую ссылку или оболочку script1 в ~/.config/autostart (где ~ означает ваш домашний каталог), который является папкой по умолчанию для автозапуска. bsd-csh , поэтому большую часть времени вы ничего не выиграете, «сделав это сами». См. Также документацию KDE.

1 Или любой другой исполняемый файл, но они наиболее распространены. Обычно вы не должны копировать программу в этот каталог. Одной из причин этого является то, что при обновлении программы вы все равно будете запускать старый двоичный файл (возможно, в сочетании с поддержкой файлов, относящихся к более новым версиям).

2
ответ дан 24 July 2018 в 18:47

Другие вопросы по тегам:

Похожие вопросы: